Cod sursa(job #2294296)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 2 decembrie 2018 10:35:49
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("secventa.in");
ofstream fout("secventa.out");

int t[500005],q[500005];
long long i,j,p,u,m=-1000000000,n,x,y,k,poz;
string s;//BLa  mii lene sa fac optimizaaaareeeeeeeeeeeeeeeeeeeeeeeeeeeee!
int main()
{
    fin>>n>>k; p=1;u=0;
    //getline(fin,s);
    //
    getline(fin,s);
    getline(fin,s);
    //cout<<s;
    for (i=0;i<s.size();i++)
    {
        if (s[i]=='-')
        {
            poz++;
            i++;
            int nr=0;
            while (s[i]>='0' && s[i]<='9')
                {
                    nr=nr*10-(s[i]-'0');
                    i++;
                }
            t[poz]=nr;
        }
        else
        if (s[i]>='0' && s[i]<='9')
        {
            poz++;
            int nr=0;
            while (s[i]>='0' && s[i]<='9')
           {
                nr=nr*10+(s[i]-'0');
                i++;
           }
           t[poz]=nr;
        }
    }

    for (i=1;i<=n;i++)
    {
        while (p<=u && t[q[u]]>=t[i]) u--;
        u++;
        q[u]=i;
        if (q[p]==i-k) p++;
        if (i>=k)
        if (t[q[p]]>m) {m=t[q[p]]; x=i;}
    }
    fout<<x-k+1<<" "<<x<<" "<<m;
    return 0;
}