Time Limit: 5000msMemory Limit: 2048KB 64-bit integer IO format: %lld Java class name: Main
网络传输中由于受到链路层的最大传输单元(Maximum Transmission Unit,MTU)的限制,在很多情况下需要对原始的数据报进行分片,使得每一分片可以顺利的传输。F公司的网络设备根据MTU的限制将每个原始的数据划分成n片,用1~n这n个数字对每个分片进行编号,在目的主机上将这些分片重新组合成原始的数据。可是在测试中发现一个问题:经常出现缺失一个数据分片的情况。公司希望在将分片重新组合前就能知道缺失的数据分片编号。
Input
有多组输入数据,你必须处理到EOF为止。
每组输入数据第一行就一个整数n(2<=n<=105), 表示数据分成了n片。
第二行有n-1个以空格隔开的整数,表示目的主机收到的数据分片的编号,由于网络传输的一些因素,数据分片到达的顺序是随机的。
Output
输出缺失的数据片编号。
Sample Input
5
5 3 2 1
Sample Output
4
Source
2009年北京师范大学新生程序设计竞赛热身赛(第三场)
Author
yjyfrombnu
#include<cstdio>
#include<iostream>
using namespace std;
int in(){
int x=0;char ch=getchar();
while(ch>'9'||ch<'0') ch=getchar();
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x;
}
int main(){
int n,x,y;
while(scanf("%d",&n)!=EOF){
y=n,x=in(),n--,y=y^n;
while(--n){
x=x^in();
y=y^n;
}
printf("%d\n",(x^y));
}
return 0;
}