Cod sursa(job #197250)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 2 iulie 2008 23:07:21
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>

#define NMAX 500001
#define DMAX 60004
//#define NMAX 501
//#define DMAX 604

int main(){
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,j,v[NMAX],f[DMAX],x;
int d2,min,b,pi,pf;
d2=DMAX/2;min=DMAX-1;b=0;
for(i=0;i<DMAX;++i) f[i]=0;
scanf("%d%d",&n,&k);
for(i=0;i<n;++i){scanf("%d",&x);v[i]=x+d2;}
for(i=0;i<k;++i){
	f[v[i]]++;
	if(min>v[i]) min=v[i];
	}
if(b<min){b=min;pi=0;pf=k-1;}
for(i=k;i<n;++i){
	f[v[i-k]]--;
	if(f[v[i]]==0){
		j=min;
		while(f[j]==0) j++;
		min=j;
		}
	f[v[i]]++;
	if(min>v[i]) min=v[i];
	if(min>b) {b=min;pi=i-k+1;pf=i;}
	}
printf("%d %d %d",pi+1,pf+1,b-d2);
return 0;
}