Cod sursa(job #1491345)

Utilizator rocandu16Badulescu Dan Andrei rocandu16 Data 25 septembrie 2015 09:07:07
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>

using namespace std;

#define MAX 5000000

long long sum=0;
int dq[MAX+1], top=0, bot=1;
int v[MAX+1];

int main()
{
    FILE *fin, *fout;

    fin = fopen ("secventa.in","r");
    fout = fopen("secventa.out","w");

    int n, k, i, x,min=-999999999,mini;

    fscanf (fin, "%d%d", &n, &k);
    fscanf(fin, "%d", &v[1]);

    dq[++top]=1;

    for(i=2; i<=n; i++)
    {
        fscanf(fin, "%d", &v[i]);
        if(v[dq[top]]>v[i])
        {
            while(top >=bot && v[dq[top]]>v[i])
                top--;
            dq[++top]=i;
        }
        else
            dq[++top]=i;

        if(dq[bot] == i-k)
            bot++;

        if(i >= k)
            if(min<v[dq[bot]])
            {
                    min=v[dq[bot]];
                    mini=i;
                    }
    }

    fprintf(fout, "%d %d %d", mini-k+1,mini,min);
    return 0;
}