Cod sursa(job #2628074)

Utilizator AokijiAlex M Aokiji Data 14 iunie 2020 12:26:45
Problema Secventa Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream r("secventa.in");
ofstream w("secventa.out");

deque<int>d;
int v[500002];

int citire()
{
    char c;
    int m=0, p=1;
    c=r.get();
    if(c=='-')
    {
        p=-1;
        c=r.get();
    }
    while(c!=' ' && c!='\n')
    {
        m=m*10+c-'0';
        c=r.get();
    }
    return m*p;
}

int main()
{
    int n, k, maxim=-30001, xf=0, yf=0;
    r>>n>>k;
    r.get();
    for(int i=0; i<n; i++)
    {
        v[i]=citire();
        if(i<k-1)
        {
            while(d.size()!=0 && v[i]<d.back())
            {
                d.pop_back();
            }
            d.push_back(v[i]);
        }
        else
        {
            if(i>=k && v[i-k]==d.front())
            {
                d.pop_front();
            }
            while(d.size()!=0 && v[i]<d.back())
            {
                d.pop_back();
            }
            d.push_back(v[i]);
            if(d.front()>maxim)
            {
                maxim=d.front();
                xf=i;
                yf=i-k+1;
            }
        }
    }
    w<<yf+1<<" "<<xf+1<<" "<<maxim;
    return 0;
}