Cod sursa(job #789962)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 19 septembrie 2012 22:35:22
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");

int q[500001],k,n;
short int a[500001];
int main()
{
    int b, f, i, maxim=-30001, y;
    fin>>n>>k;
    for (i=1; i<=n; i++)
    {
        fin >> a[i];
    }
    f=1,b=0;
    for (i=1; i<=n; i++)
    {
        while (a[q[b]] >= a[i] && b >= f)
        {
            b--;
        }
        q[++b]=i;
        if (q[f] == i-k)
        {
            f++;
        }
        if (i >= k && a[q[f]] > maxim)
        {
            maxim=a[q[f]];
            y=i;
        }
    }
    fout<<y-k+1<<" "<<y<<" "<<maxim<<"\n";
    return 0;
}