我最喜歡念書了!
2000頁的課本耶!
我下一頁應該要念哪一頁呢QQ
範例測資
範例輸入 | 範例輸出 |
---|---|
EOF 輸入,每組輸入一開始有一個數字 N (0 <= N <= 1000) 代表你以前看過幾頁 (可能重複)。 接下來 N 個 1~2000 的正整數代表你看過哪幾頁。 | 一個數字,代表你下一頁應該看哪一頁 也就是這本書裡面第一頁你沒看過的。 |
5 1 3 4 5 6 4 1 2 3 4 5 2 3 4 5 6 | 2 5 1 |
解題思路
因為題目有講 N 不會超過 1000 且頁數最多為 2000 頁,所以使用 For 迴圈從 1 跑到 2000 看有哪些頁數還沒讀到就直接輸出目前跑到的頁數然後 break 迴圈。可以使用 Map 來存取目前已經讀了哪些頁數,並使用 For 迴圈來判斷哪些頁數沒有被讀到來求答案。
範例程式碼-ZeroJudge A282: 認真念書
#include <iostream>
#include <map>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(nullptr);
int N;
while (cin >> N)
{
map<int, int>MAP;
for (int i = 0; i<N; i++)
{
int tmp;
cin >> tmp;
MAP[tmp] = 1;
}
for (int i = 1; i<=2000; i++)
{
if (MAP[i] == 0)
{
cout << i << endl;
break;
}
}
}
}
//ZeroJudge A282
//Dr. SeanXD