这是代码
#include<bits/stdc++.h>
using namespace std;
struct stu{
string name;
bool click;
} a[10005];
bool operator <(stu a,stu b){
return a.name<b.name;
}
int see(int l,int r,string n){
while(l<=r){
int mid=(l+r)/2;
if(a[mid].name==n)
return mid;
else if(a[mid].name>n)
r=mid-1;
else
l=mid+1;
}
return -1;
}
int main(){
ios::sync_with_stdio(false);
int n,m;
char click_name[55];
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>a[i].name;
a[i].click=false;
}
scanf("%d",&m);
sort(a+1,a+1+n);
for(int i=1;i<=m;i++){
string click_name;
cin>>click_name;
int j=see(1,n,click_name);
if(j==-1)
printf("WRONG\n");
else{
if(a[j].click)
printf("REPEAT\n");
else{
printf("OK\n");
a[j].click=true;
}
}
}
return 0;
}
和测试点1的输出一模一样,为什么错了……