D-hanayo和米饭
题目描述
hanayo很喜欢吃米饭。
有一天,她拿出了 nnnnnnnnn 个碗,第一个碗装了 111111111 粒米饭,第二个碗装了 222222222 粒米饭,以此类推,第 nnnnnnnnn 个碗装了 nnnnnnnnn 粒米饭。
然而,爱搞恶作剧的rin把所有的碗的顺序打乱,并拿走了一个碗。hanayo想知道,rin拿走的碗里有多少粒米饭?
输入描述:
第一行输入一个正整数 nnnnnnnnn 。代表原始的总碗数。
第二行输入 nnnnnnnnn 个正整数 aiaiaiaia_iaiaiaiai ,代表目前每碗里米饭数量。
保证输入合法。
(2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n2 \le n \le 100000,1 \le a_i \le n2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n2≤n≤100000,1≤ai≤n)
输出描述:
输出一个正整数,代表rin拿走的碗里米饭数量。
解题思路:
用数组标记,再遍历一遍数未被标记的输出下标。
示例
5
2 5 1 3
4
题解如下
#include<iostream>
using namespace std;
const int mode = 1e9 + 7;
const int Len = 100005;
int barrel[Len];int main()
{
//freopen("T.txt","r",stdin);
int n;
scanf("%d",&n);
int tem;
for(int i = 0; i < n - 1; i ++)
{
scanf("%d", &tem);
barrel[tem] ++;
}
int ans;
for(int i = 1; i <= n; i ++)
{
if(! barrel[i])
{
ans = i;
break;
}
}
printf("%d",ans); return 0;
}