n个数字
m个查询
查询r到l
第一个出现>1次的数字
没有的话输出OK
直接暴力
最后有一个
#include<stdio.h> #include<algorithm> #include<string.h> #include<math.h> #include<set> #include<string> #include<map> using namespace std; typedef long long LL; #define inf 2000000000 #define MAXN 500010 int num[MAXN]; map<int,int>m1; int main() { int n; while(scanf("%d",&n)!=EOF) { int i; for(int i=1;i<=n;i++) scanf("%d",&num[i]); int m; scanf("%d",&m); while(m--) { int l,r; scanf("%d%d",&l,&r); m1.clear(); int ok=0; for(int i=r;i>=l;i--) { m1[num[i]]++; if(m1[num[i]]>=2) { printf("%d ",num[i]); ok=1; break; } } if(ok==0) printf("OK "); } printf(" "); } return 0; }