Cod sursa(job #957511)

Utilizator geniucosOncescu Costin geniucos Data 5 iunie 2013 11:50:26
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
#include<deque>
using namespace std;
int i,maxi,sf,k,n,a[500009];
deque < int > cc;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
for(i=1;i<=n;i++)
    scanf("%d",&a[i]);
maxi=-9999999;
sf=0;
for(i=1;i<=n;i++)
{
    while(!cc.empty()&&a[cc.back()]>a[i]) cc.pop_back();
    cc.push_back(i);
    if(cc.front()<=i-k) cc.pop_front();
    if(i>=k&&a[cc.front()]>maxi)
    {
        maxi=a[cc.front()];
        sf=i;
    }
}
printf("%d %d %d\n",sf-k+1,sf,maxi);
return 0;
}