Cod sursa(job #670101)
Utilizator | Data | 28 ianuarie 2012 13:27:57 | |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.47 kb |
#include<fstream>
#define nmax 500005
using namespace std;
int a[nmax],m[nmax],p[nmax];
int main(void){
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int i,n,k,min=30005,poz,st,sf,m2=30005,p2,bmax=-30005;
fin>>n>>k; k--;
for(i=1;i<=n;++i){
fin>>a[i];
if(min>a[i]){
min=a[i];
poz=i;
}
else
if(m2>a[i]){
m2=a[i];
p2=i;
}
if(i-k<=poz){
m[i]=min;
p[i]=poz;
if(m[i]>bmax){ bmax=m[i]; st=poz; sf=i; }
}
else {
m[i]=m2;
p[i]=p2;
if(m[i]>bmax){ bmax=m2; st=p2; sf=i; }
min=m2;
poz=p2;
m2=30005;
}
}
fout<<st<<' '<<sf<<' '<<bmax;
return 0;
}