Cod sursa(job #1270135)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 22 noiembrie 2014 11:26:53
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <stdio.h>
#include <deque>
std::deque <int> val,pos;
int main()
{
    FILE *fin,*fout;
    fin=fopen("secventa.in","r");
    fout=fopen("secventa.out","w");
    int n;
    int k;
    int nr;
    fscanf(fin,"%d %d",&n,&k);
    for(int i=1;i<k;i++)
    {
            fscanf(fin,"%d",&nr);
            while(!val.empty()&&val.back()>nr)
            {
                                              val.pop_back();
                                              pos.pop_back();
            }
            val.push_back(nr);
            pos.push_back(i);
    }
    int max=0,maxp;
    for(int i=k;i<=n;i++)
    {
            if(pos.front()<=i-k)
            {
                                val.pop_front();
                                pos.pop_front();
            }
            fscanf(fin,"%d",&nr);
            while(!val.empty()&&val.back()>nr)
            {
                                              val.pop_back();
                                              pos.pop_back();
            }
            val.push_back(nr);
            pos.push_back(i);
            if(max<val.front()) 
            {
                                max=val.front();
                                maxp=i;
            }
    }
    fprintf(fout,"%d %d %d\n",maxp-k+1,maxp,max);
}