Cod sursa(job #1530284)

Utilizator refugiatBoni Daniel Stefan refugiat Data 21 noiembrie 2015 12:06:14
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
/*
#include<iostream>
#include<fstream>
#include<deque>
#define mkp (make_pair)
using namespace std;
ifstream si("secventa.in");
ofstream so("secventa.out");
//*/
//*
#include<cstdio>
FILE* si=fopen("secventa.in","r");
FILE* so=fopen("secventa.out","w");
//*/
#include<deque>
#define mkp (make_pair)
using namespace std;


deque< pair<int,int> > v;

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

int main()
{
    int n,k;
    fscanf(si,"%d %d",&n,&k);
    int i,a;
    for(i=0;i<k;++i)
    {
        fscanf(si,"%d",&a);
        adaug(a,i);
    }
    int maxx=v.front().first,poz=0;
    for(i=k;i<n;++i)
    {
        fscanf(si,"%d",&a);
        adaug(a,i);
        if(v.front().second<=i-k)
        {
            v.pop_front();
        }
        if(maxx<v.front().first)
        {
            maxx=v.front().first;
            poz=i-k+1;
        }
    }
    fprintf(so,"%d %d %d",poz+1,poz+k,maxx);
}