CF#317Div.2,ProblemB,水题

来源:互联网 发布:mac系统做win7启动盘 编辑:程序博客网 时间:2024/05/16 03:06

By L_FW, contest: Codeforces Round #317 [AimFund Thanks-Round] (Div. 2), problem: (B) Order Book, Accepted

#include <iostream>#include <cstdio>#include <cstring>#include <vector>#include <algorithm>using namespace std;const int MAXN=100010;struct stock{    char d;    int p,q;}ss;bool Bcmp(stock s1,stock s2){    return s1.p>s2.p;}bool Scmp(stock s1,stock s2){    return s1.p<s2.p;}int N,S;bool flag;int A[MAXN],B[MAXN];vector<stock> BV;vector<stock> SV;int main(){    BV.clear();    SV.clear();    scanf("%d%d",&N,&S);    while(N--){        cin>>ss.d>>ss.p>>ss.q;        if(ss.d=='B'){            flag=true;            for(int i=0;i<BV.size();i++){                if(BV[i].p==ss.p){                    BV[i].q+=ss.q;                    flag=false;                    break;                }            }            if(flag){                BV.push_back(ss);            }        }        else if(ss.d=='S'){            flag=true;            for(int i=0;i<SV.size();i++){                if(SV[i].p==ss.p){                    SV[i].q+=ss.q;                    flag=false;                    break;                }            }            if(flag){                SV.push_back(ss);            }        }    }    sort(SV.begin(),SV.end(),Scmp);    sort(BV.begin(),BV.end(),Bcmp);    if(SV.size()<S){        for(int i=SV.size()-1;i>=0;i--)            printf("S %d %d\n",SV[i].p,SV[i].q);    }    else{        for(int i=S-1;i>=0;i--)            printf("S %d %d\n",SV[i].p,SV[i].q);    }    if(BV.size()<S){        for(int i=0;i<BV.size();i++)            printf("B %d %d\n",BV[i].p,BV[i].q);    }    else{        for(int i=0;i<S;i++)            printf("B %d %d\n",BV[i].p,BV[i].q);    }    return 0;}


0 0