Pagini recente » Istoria paginii runda/simulareoji_2006_11-12/clasament | Cod sursa (job #3285226) | Cod sursa (job #942374) | Cod sursa (job #263548) | Cod sursa (job #128730)
Cod sursa(job #128730)
#include<stdio.h>
long int n,k,i,x[500001],pbaza,baza,fr[60002],j,ps,pd,vb,nm;
int main()
{
FILE *f,*g;f=fopen("secventa.in","r");g=fopen("secventa.out","w");
fscanf(f,"%ld%ld",&n,&k);
for(i=1;i<=n;i++){fscanf(f,"%ld",&x[i]);x[i]+=3000;}
pbaza=1;baza=x[1];
for(i=1;i<=k;i++)
if(x[i]<=baza)
{pbaza=i;baza=x[i];}
for(i=pbaza;i<=pbaza+k-1;i++)
{ if(x[i]<=baza)fr[baza]++;
else fr[x[i]]++;
}
ps=1;pd=k;vb=baza;
nm=n-k;
for(i=pbaza;i<=nm;i++)
{ if(x[i+k]<=baza)
{if(x[i]>baza){ fr[x[i]]--;fr[baza]++;}}
else
{ if(x[i]>baza){ fr[x[i]]--;fr[x[i+k]]++;}
else {fr[baza]--;fr[x[i+k]]++;
if(!fr[baza])
{ while(!fr[baza])baza++;
ps=i+1;pd=i+k;vb=baza;
}
}
}
}
vb-=30000;
fprintf(g,"%ld %ld %ld\n",ps,pd,vb);
fcloseall();
return 0;
}