Time Limit: 1000 mSec Memory Limit : 65536 KB
Problem Description
An array of length n, with address from 1 to n inclusive, contains entries from the set {1,2,…,n-1} and there’s exactly two elements with the same value. Your task is to find out the value.
Input
Input contains several cases.
Each case includes a number n (n>1&&n<=10^6), which is followed by n integers.
The input is ended up with the end of file.
Output
Your must output the value for each case, one per line.
Sample Input
2
1 1
4
1 2 3 2
Sample Output
1
2
#include"stdio.h"
#include"string.h"
int main()
{int n;const int maxn=1e6;int ai[maxn+7];int bi[maxn+7];while(scanf("%d",&n)==1){memset(bi,0,sizeof(bi));for(int i=0;i<n;i++){scanf("%d",&ai[i]);bi[ai[i]]++;}for(int i=1;i<n;i++){if(bi[i]==2){printf("%d\n",i);break;}}}return 0;
}
题意: 输入n个数 这n个数包括1到n-1 所以必然有一个数出现两次 找出这个数