<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

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: a毛片免费观看完整| 黄页网站在线免费观看| 女同免费毛片在线播放| 相泽亚洲一区中文字幕| 黄色毛片免费网站| 亚洲性久久久影院| 91视频免费观看| 亚洲成人在线网站| 2015日韩永久免费视频播放| 久久精品国产亚洲| 日本h在线精品免费观看| 亚洲精品日韩中文字幕久久久| 在线美女免费观看网站h| 亚洲精品在线播放视频| 黄页网站免费观看| 亚洲精华液一二三产区| 日韩成全视频观看免费观看高清| 亚洲综合色婷婷在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 91亚洲导航深夜福利| 57pao一国产成视频永久免费| 亚洲理论片在线观看| 性一交一乱一视频免费看| 边摸边吃奶边做爽免费视频99 | 亚洲午夜久久久久妓女影院| 国产成人免费ā片在线观看老同学| 亚洲av无码国产精品色午夜字幕| 免费视频成人片在线观看| 亚洲AV综合色区无码二区爱AV| 日本免费人成视频播放| 一级特级女人18毛片免费视频| 亚洲av无码一区二区三区乱子伦| 亚洲女人影院想要爱| 免费电视剧在线观看| 人人狠狠综合久久亚洲| 亚洲夜夜欢A∨一区二区三区| 亚洲精品在线免费看| 亚洲国产AV无码一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品| 成人黄网站片免费视频| 亚洲精品天天影视综合网|