Cod sursa(job #645667)
Utilizator | Data | 10 decembrie 2011 08:44:21 | |
---|---|---|---|
Problema | Secventa | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<cstdio>
#define N 500001
int n,i,r[N],p=1,u=1,k,a,b,v[N],s=-30001;
int main()
{FILE *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]);
while(p<=u&&r[p]<=i-k&&v[r[p]]<=v[r[p+1]])
p++;
while(p<=u&&v[i]<=v[r[u]])
u--;
r[++u]=i;
if(i>=k&&v[r[p]]>s)
s=v[r[p]],a=i-k+1,b=i;}
fprintf(g,"%d %d %d",a,b,s);
return 0;}