Cod sursa(job #985003)
| Utilizator | Data | 16 august 2013 03:19:07 | |
|---|---|---|---|
| Problema | Secventa | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.69 kb |
#include<cstdio>
int nmax,n,k,i,j,nr,p,u,in,fin,v[500001],d[500001];
FILE *f,*g;
int main(){
f=fopen("secventa.in","r");
g=fopen("secventa.out","w");
fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;i++){
fscanf(f,"%d",&v[i]);
}
p=1;
u=0;
nmax=-30001;
for(i=1;i<=n;i++){
while(v[i]<v[d[u]] && u>=p){
u--;
}
d[++u]=i;
if(i>=k){
if(i-d[p]==k)
p++;
if(v[d[p]]>nmax){
nmax=v[d[p]];
in=i-k+1;
fin=i;
}
}
}
fprintf(g,"%d %d %d",in,fin,nmax);
fclose(f);
fclose(g);
return 0;
}
