Mai intai trebuie sa te autentifici.
Cod sursa(job #1709652)
Utilizator | Data | 28 mai 2016 13:15:06 | |
---|---|---|---|
Problema | Pq | Scor | 0 |
Compilator | c | Status | done |
Runda | ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest | Marime | 1.08 kb |
#include <stdio.h>
#include <stdlib.h>
int T[100000];
int stat[100000];
int A[100000];
int B[100000];
int main()
{
freopen("pq.in","r",stdin);
freopen("pq.out","w",stdout);
int n,q;
scanf("%d%d",&n,&q);
int i,j;
for(i=0;i<n;++i){
scanf("%d",&T[i]);
++stat[T[i]-1];
}
for(i=0;i<n;++i){
if(stat[T[i]-1]<=1){
A[i] = -1;
B[i] = -1;
continue;
}
for(j=i+1;j<n;++j){
if(T[j]==T[i]){
A[i] = j-i;
B[i] = j;
--stat[T[i]-1];
break;
}
}
}
/*for(i=0;i<n;++i){
//printf("%d ",stat[i]);
printf("%d %d . ",A[i],B[i]);
}printf("\n");*/
int l,r;
int max;
for(i=0;i<q;++i){
scanf("%d%d",&l,&r);
max =-1;
for(j=l-1;j<r;++j){
if(B[j]<r){
if(A[j]>max){
max = A[j];
}
}
}
printf("%d\n",max);
}
return 0;
}