Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 104]. The first one who bets on a unique number wins. For example, if there are 7 people betting on 5 31 5 88 67 88 17, then the second one who bets on 31 wins.
Input Specification:
Each input file contains one test case. Each case contains a line which begins with a positive integer N (<=105) and then followed by N bets. The numbers are separated by a space.
Output Specification:
For each test case, print the winning number in a line. If there is no winner, print “None” instead.
Sample Input 1:
1 |
7 5 31 5 88 67 88 17 |
Sample Output 1:
1 |
31 |
Sample Input 2:
1 |
5 888 666 666 888 888 |
Sample Output 2:
1 |
None |
也是很久以前解决的,然而代码风格有些惨不忍睹……
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include<stdio.h> struct number_ { int no; int count; }; typedef struct number_ number; number num[10001]; int main() { int n,i,temp,min=0; scanf("%d",&n); for(i=0;i<10001;i++) { num[i].no=-1; num[i].count=0; } num[0].no=100005; num[0].count=-1; for(i=0;i<n;i++) { scanf("%d",&temp); num[temp].count++; if(num[temp].no==-1) num[temp].no=i; } for(i=1;i<10001;i++) { if(num[i].count==1) { if(num[min].no>num[i].no) min=i; } } if(min>0&&min<10001) printf("%d\n",min); else printf("None\n"); } |