Cod sursa(job #1525113)

Utilizator NightSilentIridon Stefan NightSilent Data 14 noiembrie 2015 19:15:10
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
char s[4000001],*p;
int a[500001],n,k,maxi,nr;
deque<int> D;
int main()
{
    maxi = -30001;
    n>>k;
    f.get();
    f.getline(s,4000001);
    f.close();
    p=strtok(s," ");
    while(p)
    {
        a[++nr]=atoi(p);
        p=strtok(NULL," ");
    }
    for(int i=1;i<=n;i++)
    {
        while(!D.empty()&&a[i]<=a[D.back()])
            D.pop_back();
        D.push_back(i);
        if(D.front()==i-k)
            D.pop_front();
        if(i>=k&&a[D.front()]>maxi)
            {
                maxi=a[D.front()]
                nr=i;
            }
    }

    g<<nr-k+1<<" "<<nr<<" "<<maxi;
    g.close();
    return 0;
}