Cod sursa(job #849762)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 7 ianuarie 2013 16:38:14
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <deque>
#include <climits>

using namespace std;

ifstream f("secventa.in");
ofstream g("secventa.out");

int n,k,x,v[500005],maxim,nr;
deque <int> d;

int main()
{
    int i;
    //g<<"Am inceput\n";
    f>>n>>k;

    for(i=1;i<k;++i)
    {
        f>>x;
        v[i]=x;
        while(x>d.back() && !d.empty()) d.pop_back();
        d.push_back(x);
    }
    //maxim=INT_MIN;
    v[0]=v[1]+1;
    for(;i<=n;++i)
    {
        f>>x;
        if(v[i-k]==d.front()&&!d.empty()) d.pop_front();
        v[i]=x;
        while(x>d.back()&&!d.empty()) d.pop_back();
        d.push_back(x);
        if(d.front()>maxim)
        {
            maxim=d.front();
            nr=i-k;
        }
    }
    g<<nr<<' '<<nr+k<<' '<<maxim<<'\n';
    f.close(); g.close();
    return 0;
}