Cod sursa(job #216389)

Utilizator SheepBOYFelix Liviu SheepBOY Data 24 octombrie 2008 13:17:44
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#define sz 2<<20   
//#include<vector>   
//using namespace std;     
//vector<bool> s(2<<30,false);   
#include<stdio.h>   
int n,v,lv,nr,app[sz],stk[sz];   
int see(int k)   
{   
    for(int i=0;i<nr;i++)   
        if(k==stk[i])   
            return 1;   
        return 0;   
}   
int main()   
{   
    int i,l,u,last,ilast,nr;   
    l=u=0;   
    freopen("secv5.in","r",stdin);   
    freopen("secv5.out","w",stdout);   
    last=ilast=0;   
    scanf("%d%d%d%d",&n,&l,&u,&lv);   
    app[0]=1;   
    int sum=0;   
    nr=0;   
    stk[nr]=lv;   
    nr++;   
	int final=0,k=0;
    for(i=1;i<n;i++)   
    {   
        scanf("%d",&v);   
        if(v!=lv&&!see(v))     
            app[i]=app[i-1]+1;   
        else  
            app[i]=app[i-1];   
       
        stk[nr]=v;   
        nr++;   
           
        lv=v;   
        if(app[i]>=l&&app[i]<=u)   
        {   
            if(!last)   
            {   
                last=1+((i+1)-(app[i]));   
                ilast=i;   
            }   
			
        }   
		if(app[i]>u&&!final||i==n-1)
		sum=(i+1-app[i])+i+2;
		
    }   
    printf("%d",sum);   
}