Cod sursa(job #1525796)

Utilizator codi22FMI Condrea Florin codi22 Data 15 noiembrie 2015 16:38:36
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <cstdio>
using namespace std;
#include <vector>
int i,k,nr,a,n,mx,p;
vector <int> val,poz;
int main()
{

    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%i %i",&n,&k);
    scanf("%i",&a);
    val.push_back(-40000);
    poz.push_back(-40000);
    val.push_back(a);
    poz.push_back(1);
    nr=1;
    for (i=2;i<=n;i++)
    {
        scanf("%i",&a);
        p=0;
        while (poz[nr]+k>=i&&val[nr]>a)
        {
            p=poz[nr];
            val.pop_back();
            poz.pop_back();
            nr--;
        }
        if (p!=0)
            {
                nr++;
            val.push_back(a);
            poz.push_back(p);
            }

        val.push_back(a);
        poz.push_back(i);
        nr++;
    }
    mx=-40000;
    for (i=1;i<=nr;i++)
    {
        if (val[i]>mx&&poz[i]<=n-k+1)
        {
            mx=val[i];
            p=poz[i];
        }
    }
//   for (i=1;i<=nr;i++)
 //       cout<<val[i]<<" "<<poz[i]<<'\n';
    cout<<p<<" "<<p+k-1<<" "<<mx;
}