Cod sursa(job #904114)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 3 martie 2013 19:04:46
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<deque>
#include<fstream>
using namespace std;
char s[3500005];
int main()
{
    ifstream cin("secventa.in");ofstream cout("secventa.out");
    deque<int>d;int n,k,i,bmax=-2e9,in,v[500005],j=0,a;bool l;
    cin>>n>>k;
    cin.get();
    cin.get(s,3500005);
    for(i=1;i<=n;++i)
    {
        l=a=0;
        if(s[j]=='-')
            l=1,++j;
        for(;s[j]!=' ';++j)
            a*=10,a+=s[j]-'0';
        ++j,v[i]=l?-a:a;
        while(!d.empty()&&v[i]<=v[d.back()])
            d.pop_back();
        d.push_back(i);
        if(i-k==d.front())
            d.pop_front();
        if(i>=k&&v[d.front()]>bmax)
            bmax=v[d.front()],in=i;
    }
    cout<<in-k+1<<' '<<in<<' '<<bmax;
}