<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 4,  comments - 0,  trackbacks - 0
    因為題目數據較小,所以可以直接模擬。
    每讀入一個命令所要進行的操作:
    如果是buy,則該種價格的買入數+ni,將該種價格加入到買入價格的集合中。
    如果是sell,則該種價格的賣出數+mi,將該種價格加入到賣出價格的集合中。
     
    然后進行銷售的操作:
    比較最低的賣出價格和最高的買入價格,
    如果前者小于等于后者則:
    設最低賣出價格的賣出數為a,最高買入價格的買入數為b.
    則a=a-min(a,b),b=b-min(a,b)
    如果其中賣出數變為0,則在賣出價格集合中刪去該種賣出價格。買入數同理。
    記錄股票價格
    ------------------------------------------------------------------------------------------------------
    直到最低的賣出價格比最高的買入價格要高或者其中一個集合為空時跳出。
     
    將余下來最低的賣出數不為0的賣出價格輸出,如果賣出價格集合為空就輸出”-”
    買入價格同理,最后再輸出股票價格
    這樣就完成了一次命令的操作
    注意賣出價格集合為空和買入價格集合為空時的情況
     
    代碼如下:
     1 //by NKU lkjslkjdlk
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<set>
     5 using namespace std;
     6 inline int min(int x,int y){return x<y?x:y;}
     7 int cas,or_num,sto_pri,i,bid[1005],ask[1005],trade_num,trade_pri,min_de;
     8 char order[100],tmp[10],bs[5],ch;
     9 set<int> bids,asks;set<int>::reverse_iterator biter;set<int>::iterator aiter;
    10 void print(){
    11     if(asks.empty())printf("");else printf("%d ",*asks.begin());
    12     if(bids.empty())    printf("");else printf("%d ",*bids.rbegin());
    13     if(sto_pri==-1)    printf("-\n");else printf("%d\n",sto_pri);
    14 }
    15 void sell(){
    16     while(1){
    17         biter=bids.rbegin();aiter=asks.begin();
    18         if(*biter>=*aiter){
    19             min_de=min(bid[*biter],ask[*aiter]);
    20             bid[*biter]-=min_de;ask[*aiter]-=min_de;
    21             sto_pri=*aiter;
    22             if(bid[*biter]==0)    bids.erase(*biter);
    23             if(ask[*aiter]==0)    asks.erase(*aiter);
    24         }    
    25         if(asks.empty()||bids.empty())    break;
    26         if(*asks.begin()>*bids.rbegin())    break;
    27     }
    28 }
    29 int main()
    30 {
    31     scanf("%d",&cas);
    32     while(cas--){
    33         bids.clear();asks.clear();
    34         memset(bid,0,sizeof(bid));memset(ask,0,sizeof(ask));
    35         scanf("%d%c",&or_num,&ch);
    36         for(i=0,sto_pri=-1;i<or_num;i++){
    37             gets(order);sscanf(order,"%s %d %s %s %d",bs,&trade_num,tmp,tmp,&trade_pri);
    38             if(!strcmp(bs,"buy")){
    39                 bids.insert(trade_pri);bid[trade_pri]+=trade_num;
    40                 if(!asks.empty()){sell();print();}else print();
    41             }
    42             else{
    43                 asks.insert(trade_pri);ask[trade_pri]+=trade_num;
    44                 if(!bids.empty()){sell();print();}else print();
    45             }    
    46         }
    47     }
    48     return 0;
    49 }


    posted on 2011-10-11 00:50 NKU->lkjslkjdlk 閱讀(272) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲熟妇丰满多毛XXXX| 国产亚洲福利在线视频| 污污的视频在线免费观看| 114级毛片免费观看| 久久久久亚洲爆乳少妇无| 亚洲综合色婷婷在线观看| 久久免费视频网站| 亚洲av片一区二区三区| 亚洲精品伊人久久久久| 国产成人精品无码免费看 | 午夜dj在线观看免费视频| 亚洲国产成人久久综合碰碰动漫3d| 美女又黄又免费的视频| 最近最新MV在线观看免费高清| 亚洲AV无码专区国产乱码4SE | 国产成人亚洲综合一区| 国产又黄又爽又大的免费视频| 四虎永久免费影院在线| 99999久久久久久亚洲| 在线免费观看你懂的| 国产精品亚洲а∨无码播放| 特级毛片A级毛片100免费播放| 午夜视频在线观看免费完整版| 亚洲国产韩国一区二区| 99视频在线免费看| 亚洲国产精品无码专区在线观看| 成人免费视频一区二区| 国产在线观看免费完整版中文版| 亚洲色大成网站www久久九| 18禁止观看免费私人影院| 亚洲精品国产专区91在线| 久久青草国产免费观看| 亚洲精品无码鲁网中文电影| 一级特黄a免费大片| 亚洲国产主播精品极品网红| 美女视频免费看一区二区| 四虎影视永久免费观看网址 | 亚洲a一级免费视频| 亚洲av永久无码精品网站| 中文成人久久久久影院免费观看| 亚洲精品无码久久久久AV麻豆|