CCF 17_09_2 火車購票

原題

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;



int main()
{
    vector< bool> all(100,false);
    int opt, order;
    cin >> opt;
    for (int i = 0; i < opt; i++)
    {
        cin >> order;
        bool done = false;
        for (int i = 0; i < 20; i++)
        {
            if (count(all.begin() + i * 5, all.begin() + 5 * (i + 1), false) >= order)
            {
                int count(order);
                for (int t = 1; t <= count; t++)
                {
                    if (all[i * 5 + t - 1])
                    {
                        count++;
                        continue;
                    }                       
                    cout << i * 5 + t<<' ';
                    all[i * 5 + t - 1] = true;
                }
                cout << endl;
                done = true;
                break;
            }               
        }
        if(!done)
        {
            for(int i=0;i<100;i++)
                if (!all[i])
                {
                    cout << i + 1;
                    all[i] = true;
                    order -= 1;
                    if (order == 0)
                        break;
                }
        }
    }       
    system("pause");
    return 0;
}

這裏用了一個vector來裝一個bool數組,然後用到了count來數數,最後根據情況進行輸出,檢驗了,基本都是對的,但是,交上去只有90分。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章