Cod sursa(job #1061208)

Utilizator vlady1997Vlad Bucur vlady1997 Data 19 decembrie 2013 14:18:14
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
        #include <cstdio>
        #include <deque>
        using namespace std;
        deque <int> h;
        int a[500001];
        int main()
        {
            int n, k, i, p, r, Min=-30001;
            freopen("secventa.in","r",stdin);
            freopen("secventa.out","w",stdout);
            scanf("%d%d",&n,&k);
            for (i=1; i<=n; i++) scanf("%d",&a[i]);
            for (i=1; i<=n; i++)
            {
                while(!h.empty() && a[h.back()]>a[i])
                {
                    h.pop_back();
                }
                h.push_back(i);
                if (i-h.front()>=k)
                    h.pop_front();
                if (a[h.front()]>Min && i>=k)
                {
                    Min=a[h.front()];
                    p=i-k+1; r=i;
                }
            }
            printf("%d %d %d",p,r,Min);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }