Cod sursa(job #812490)
| Utilizator | Data | 13 noiembrie 2012 22:07:27 | |
|---|---|---|---|
| Problema | Secventa | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <stdio.h>
using namespace std;
long long A[5000000],dq[5000000];
int main()
{
long long n,k,st=1,dr=0,i,max;
FILE*f;
f=fopen("secventa.in","r");
fscanf(f,"%lld%lld",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%lld",&A[i]);
max=A[1];
for(i=1;i<=n;i++)
{
while(st<=dr && A[i]<=A[dq[dr]]) dr--;
dq[++dr]=i;
if(dq[st]==i-k) st++;
if(i>=k && A[dq[st]]>max) max=A[dq[st]];
}
// freopen("secventa.txt","w",stdout);
printf("%lld %lld ",dq[st],dq[dr]);
printf("%lld",max);
return 0;
}
