1041. Be Unique (20)
时间限制
100 ms
内存限制
32000 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue
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:7 5 31 5 88 67 88 17Sample Output 1:
31Sample Input 2:
5 888 666 666 888 888Sample Output 2:
None
用内存换时间!!!
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int a;
int b[10001]={0};
while(cin>>a){
vector <int> demo;
vector<int>::iterator p;
while(a--){
int temp;
// cin>>temp;
//用scanf 效率高
scanf("%d",&temp);
//宁愿大存储,索引,而不容易超时。
demo.push_back(temp);
b[temp]++;
}
bool flag=true;
for(p=demo.begin();p!=demo.end();p++){
if(b[*p]==1){
cout<<*p;
flag=false;
break;
}
}
if(flag){
cout<<"None";
}
}
return 0;
}
1.这份比较早,运行超时
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct uni{
int num;
bool flag;
};
int main(){
int a;
while(cin>>a){
vector <uni> demo;
vector <uni>::iterator iter;
while(a--){
uni sample;
int temp;
bool f=true;
cin>>temp;
int n=demo.size();
for(iter=demo.begin();iter!=demo.end();iter++){
if((*iter).num==temp){
(*iter).flag=false;
f=false;
}
}
if(f){
sample.num=temp;
sample.flag=true;
demo.push_back(sample);
}
}
bool f=true;
for(iter=demo.begin();iter!=demo.end();iter++){
if((*iter).flag==true){
cout<<(*iter).num;
f=false;
break;
}
}
if(f){
cout<<"None";
}
}
return 0;
}