Cod sursa(job #2205775)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 20 mai 2018 11:30:24
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>

using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int maxi,i,sf,in,u,p,n,k,v[500001],dq[500001],nr,l;
char S[3500002];
int main()
{   f>>n>>k;p=0;u=-1;maxi=-30001;
    f.get();
    f.getline(S+1,3500002);

    nr=1;
    for(i=1;S[i]!='\0';i++){
        if(S[i]=='-'){
            l=-1;
            i++;
        }
        else
            l=1;
        while(S[i]!=' '&&S[i]!='\0'){
            v[nr]=v[nr]*10+(S[i]-'0');
            i++;
        }
        v[nr]=v[nr]*l;
        nr++;
    }
    for(i=1;i<=n;i++){
        while(p<=u&&v[i]<=v[dq[u]])
            u--;
        dq[++u]=i;
        if(i-dq[p]+1>k){
            p++;
        }
        if(i>=k)
        if(maxi<v[dq[p]]){
                maxi=v[dq[p]];
                sf=i;
            }
    }
    g<<sf-k+1<<' '<<sf<<' '<<maxi;
    return 0;
}