Cod sursa(job #979970)

Utilizator t.g.g.tt.g.g.t t.g.g.t Data 3 august 2013 17:04:48
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <stdio.h>
using namespace std;

int a[1000005][2],t;
long int n,prim,ult,k,pst,psf,baza;
int main()
{
    freopen("secventa.in","r",stdin);
    scanf("%d %d",&n,&k);
    scanf("%d",&a[0][0]);
    a[0][1]=1;
    for (int i=1;i<k;i++)
    {
        scanf("%d",&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++;
        }
        scanf("%d",&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;
        }

    }
    fclose(stdin);
    freopen("secventa.out","w",stdout);
    printf("%d %d %d",pst,psf,baza);
    fclose(stdout);

}