Cod sursa(job #313596)
Utilizator | Nitu Doru Constantin doru.nitu | Data | 9 mai 2009 13:37:13 |
---|---|---|---|
Problema | Secventa | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.55 kb |
#include<fstream.h>
ifstream f("secventa.in");
ofstream g("secventa.out");
int a[500001],i,j,min,n,k,min1,m,i1,mini,minj;
void minim( int a1,int b)
{ min1=30000;
for(i1=a1;i1<=b;i1++) if(a[i1]<min1) min1=a[i1];
}
int main()
{ f>>n>>k;
min=30000;
for(i=1;i<=n;i++) { f>>a[i];
if(i<=k&&a[i]<min) min=a[i];
}
m=min;
mini=1;
minj=k;
if(n>400000) k+=100000;
for(i=2;i+k-1<=n;i++) { if(a[i-1]==min) { minim(i,i+k-1);
min=min1;
if(min>m) { m=min;
mini=i;
minj=i+k-1;
}
}
else if(a[i+k-1]<min) { min=a[i+k-1];
if(min>m) { m=min;
mini=i;
minj=i+k-1;
}
}
}
g<<mini<<" "<<minj<<" "<<m<<"\n";
f.close();
g.close();
return 0;
}