Cod sursa(job #2369581)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 6 martie 2019 01:39:36
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb

#include <bits/stdc++.h>

using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
deque<pair<int,int>> q;
int n,k,x,y,s,Max=-40000,f,l,a[500100],ok,m,p;
char v[501100];
int main()
{
    in>>n>>k;
    in.get();
    in.getline(v,500100);
    int i=0;
    p=strlen(v);
    while(i<p)
    {
        if(v[i]=='-') ok=1,i++;
        else if(v[i]>='0'&&v[i]<='9')
        {
            int nr=0;
            m++;
            while(v[i]>='0'&&v[i]<='9') nr=nr*10+v[i]-'0',i++;
            if(ok==1) nr=-nr,ok=0;
            if(!q.empty()&&q.front().second<m-k+1) q.pop_front();
            while(!q.empty()&&nr<=q.back().first) q.pop_back();
            q.push_back({nr,m});
            if(m>=k&&q.front().first>Max) Max=q.front().first,f=m-k+1,l=m;
        }
        else i++;
    }
    out<<f<<" "<<l<<" "<<Max;
    return 0;
}