Cod sursa(job #2474236)

Utilizator LeCapataIustinian Serban LeCapata Data 14 octombrie 2019 21:32:48
Problema Secventa Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <deque>
using namespace std;

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

struct secventa
{
    int minim;
    int incp;
    int sfar;

};

deque<int> coada;
secventa poz[500005];
int nr[500005];
int salv[500005];

int main()
{
    int n, k;
    in>>n>>k;

    for(int i=1; i<=n; i++)
        in>>nr[i];

    for(int i=1; i<=n-k+1; i++)
    {
        for(int j=i; j<=k+i-2; j++)
        {
            if(coada.front()<nr[j])coada.push_back(nr[j]);
            else if(coada.front()>=nr[j])coada.push_front(nr[j]);
        }

        poz[i].incp=i;
        poz[i].sfar=k+i-1;
        poz[i].minim=coada.front();

        while(!coada.empty())
            coada.pop_front();
    }

    int maxim=-30001;
    for(int i=1; i<=n-k+1; i++)
        if(poz[i].minim>maxim)
            maxim=poz[i].minim;

    for(int i=1; i<=n-k+1; i++)
        if(poz[i].minim==maxim)
        {
            out<<poz[i].incp<<" "<<poz[i].sfar<<" "<<poz[i].minim;
            break;
        }

    in.close();
    out.close();
    return 0;
}