Cod sursa(job #979942)

Utilizator t.g.g.tt.g.g.t t.g.g.t Data 3 august 2013 16:07:48
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
using namespace std;

int a[1000005][2],t;
long int n,prim,ult,k,pst,psf,baza;
int main()
{
    ifstream fin ("secventa.in");
    ofstream fout("secventa.out");
    fin >> n >> k;
    fin >>a[0][0]; a[0][1]=1;
    for (int i=1;i<k;i++)
    {
        fin >> t;
        ult++;
        a[ult][0]=t; a[ult][1]=i+1;
        while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
        {
            a[ult-1][0]=a[ult][0];
            a[ult-1][1]=a[ult][1];
            ult--;
        }
    }
    pst=1; psf=k; baza=a[0][0];
    for (int i=k;i<n;i++)
    {
        if (a[prim][1]<i-k+2)
        {
            prim++;
        }
        fin >> t;
        ult++;
        a[ult][0]=t; a[ult][1]=i+1;
        while ((ult>prim)&&(a[ult][0]<a[ult-1][0]))
        {
            a[ult-1][0]=a[ult][0];
            a[ult-1][1]=a[ult][1];
            ult--;
        }
        if (baza<a[prim][0])
        {
            baza=a[prim][0];
            pst=i-k+2;
            psf=i+1;
        }

    }
    fout << pst<<" " << psf<<" " << baza;
    fin.close();
    fout.close();

}