Cod sursa(job #1583377)

Utilizator TomiGhitaVictor Ghita TomiGhita Data 28 ianuarie 2016 22:10:36
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <stdio.h>
#include <deque>
using namespace std;
deque <int> d,d2;
int v[500001];
int main()
{
    FILE *fin,*fout;
    fin=fopen("secventa.in","r");
    fout=fopen("secventa.out","w");
    int n,k,i,poz,min;
    fscanf(fin,"%d%d",&n,&k);
    min=-32001;
    for (i=1;i<=n;i++)
    {
        fscanf(fin,"%d",&v[i]);
        if (d.empty()==0 && i-d2.front()>=k)
        {
            d.pop_front();
            d2.pop_front();
        }
        while (d.empty()==0 && v[i]<d.back())
        {
            d.pop_back();
            d2.pop_back();
        }
        d.push_back(v[i]);
        d2.push_back(i);
        if (d.front()>min && d.empty()==0 && i>=k)
        {
            min=d.front();
            poz=i;
        }
    }
    fprintf(fout,"%d %d %d",poz-k+1,poz,min);
    return 0;
}