Cod sursa(job #2062309)

Utilizator CroitoruAlinCroitoru Alin CroitoruAlin Data 10 noiembrie 2017 10:56:59
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

void citire(int &n,int &k,int *&v)
{
    ifstream fin("secventa.in");
    fin>>n>>k;
    v=new int[n+1];
    for(int i=1;i<=n;i++)
        fin>>v[i];

    fin.close();
}
int main()
{
    int n,k;
    int *v;
    citire(n,k,v);
    int i;
    deque<int> d;
    int sol=0;
    int prim,ultim;
    for(i=1;i<=n;i++){
        for(;!d.empty() && v[i]<=v[d.front()];)
            d.pop_front();
        d.push_front(i);
        if(!d.empty() && i-k>=d.back())
            d.pop_back();
        if(v[d.back()]>sol)
        {
            sol=v[d.back()];
            prim=i-k+1;
            ultim=i;
        }
    }
    ofstream fout("secventa.out");
    fout<<prim<<" "<<ultim<<" "<<sol;
    fout.close();
    delete[] v;
    return 0;
}