首页 > 代码库 > UVA - 11572 Unique Snowflakes

UVA - 11572 Unique Snowflakes

/*STLsort离散化==T手工sort离散化==Tmap在线==Tmap离线处理c==A 240ms */#include<cstdio>#include<map>#define maxn 1000010using namespace std;int T,n,c[maxn],a[maxn],ans,s,t,num;map<int,int>p;int init(){    int x=0,f=1;char s=getchar();    while(s<0||s>9){if(s==-)f=-1;s=getchar();}    while(s>=0&&s<=9){x=x*10+s-0;s=getchar();}    return x*f;}int main(){    T=init();    while(T--){        n=init();s=1;ans=num=0;p.clear();        for(int i=1;i<=n;i++){            a[i]=init();            if(p[a[i]]==0){                p[a[i]]=i;c[i]=0;            }            else {                c[i]=p[a[i]];p[a[i]]=i;            }        }        while(1){            for(t=s;t<=n;t++){                if(c[t]>=s){                    s=c[t]+1;c[t]=0;break;                }                ans=max(ans,t-s+1);            }            if(t>=n)break;        }        printf("%d\n",ans);    }    return 0;}

 

UVA - 11572 Unique Snowflakes