Cod sursa(job #2627249)

Utilizator AlinaFloreaFlorea Alina AlinaFlorea Data 10 iunie 2020 11:31:46
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <deque>
#include <cstring>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,i,j,m,k,mx=-200000000,in,sf,v[500005],cnt=1,semn=1;
char s[4000005];
deque <int> d;
int main()
{
    f>>n>>k;
    f.get();
    f.getline(s,4000005);
    m=strlen(s);
    for(i=0;i<m;i++){
        if(s[i]=='-')
            semn=-1;
        else
            if(s[i]==' ')
                semn=1;
        else{
            while(isdigit(s[i])&&i<=m)
                v[cnt]=v[cnt]*10+s[i]-'0', i++;
            i--;
            v[cnt]=v[cnt]*semn;
            cnt++;
        }
    }
   // for(i=1;i<=cnt;i++)
     //09 i999999mnmm   g<<v[i]<<"\n";
    for(i=1;i<=cnt;i++){
        while(!d.empty()&&v[i]<=v[d.back()])
            d.pop_back();
        d.push_back(i);
        if(i-k>=d.front())
            d.pop_front();
        if(mx<v[d.front()]&&i>=k){
            mx=v[d.front()];
            sf=i;
            in=i-k+1;
        }
    }
    g<<in<<" "<<sf<<" "<<mx;
    return 0;
}