Cod sursa(job #1008830)

Utilizator sebinechitasebi nechita sebinechita Data 11 octombrie 2013 22:09:41
Problema Secventa Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>

using namespace std;

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

#define baza 10
#define MAX 501000

deque <pair <int, int> > coada;

int s;

int main()
{
    int n, i, k, x, b=INT_MIN;
    fin>>n;
    fin>>k;
    for(i=1;i<=n;i++)
    {
        fin>>s;
        while(!coada.empty() && coada.back().first>=s)
        {
            coada.pop_back();
        }

        coada.push_back(make_pair(s, i));

        if(coada.front().second<=i-k)
        {
            coada.pop_front();
        }

        if(coada.front().first>b && coada.front().second>=k)
        {
            b=coada.front().first;
            x=i;
        }

    }
    fout<<x-k+1<<" "<<x<<" "<<b;


    return 0;
}