Cod sursa(job #1530184)

Utilizator refugiatBoni Daniel Stefan refugiat Data 21 noiembrie 2015 11:56:35
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;
ifstream si("secventa.in");
ofstream so("secventa.out");

/*#include<cstdio>
FILE* si=fopen("aranjamente.in","r");
FILE* so=fopen("aranjamente.out","w");
//*/

deque<int> v;
deque<int> p;

void adaug(int el,int poz)
{
    while(!v.empty()&&v.back()>=el)
    {
        v.pop_back();
        p.pop_back();
    }
    v.push_back(el);
    p.push_back(poz);
    return;
}

int main()
{
    int n,k;
    si>>n>>k;
    int i,a;
    for(i=0;i<k;++i)
    {
        si>>a;
        adaug(a,i);
    }
    int maxx=v.front(),poz=0;
    for(i=k;i<n;++i)
    {
        si>>a;
        adaug(a,i);
        if(p.front()<=i-k)
        {
            p.pop_front();
            v.pop_front();
        }
        if(maxx<v.front())
        {
            maxx=v.front();
            poz=i-k+1;
        }
    }
    so<<poz+1<<' '<<poz+k<<' '<<maxx<<'\n';
}