Cod sursa(job #2627246)

Utilizator AlinaFloreaFlorea Alina AlinaFlorea Data 10 iunie 2020 11:11:24
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 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,semn;
char s[5000005];
deque <int> d;
int main()
{
    f>>n>>k;
    f.get();
    f.getline(s,5000005);
    m=strlen(s);
    for(i=0;i<m;i++){
        if(s[i]=='-')
            semn=-1;
        else
            semn=1;
        while(isdigit(s[i])&&i<=m)
            v[cnt]=v[cnt]*10+s[i]-'0', i++;
        v[cnt]=v[cnt]*semn;
        cnt++;
    }
    //for(i=1;i<=cnt;i++)
      //  g<<v[i]<<" ";
    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;
}