Cod sursa(job #316141)
Utilizator | Enacache Razvan Daniel zaNNy | Data | 18 mai 2009 16:43:17 |
---|---|---|---|
Problema | Secventa | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.19 kb |
#include <stdio.h>
FILE *f,*s;
int v[500001],n,k,i,j,min1,min2,in;
int minim( int a, int b)
{
int min=50000;
for(j=a;j<=b;++j)
{
if(v[j]<min)
min=v[j];
}
return min;
}
int main()
{
f=fopen("secventa.in","r");
s=fopen("secventa.out","w");
fscanf(f,"%d %d\n",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
min2=minim(1,k);
min1=min2;
in=1;
for(i=2;i<=n-k+1;++i)
{
if(v[i-1]==min2)
{
min2=minim(i,i+k-1);
if(min2>min1)
{
min1=min2;
in=i;
}
}
else if(v[i+k-1]<min2)
{
min2=v[i+k-1];
if(min2>min1)
{
min1=min2;
in=i;
}
}
}
fprintf(s,"%d %d %d",in,in+k-1,min1);
fclose(s);
return 0;
}