Cod sursa(job #2396640)

Utilizator sebi_info1Olaru Sebastian sebi_info1 Data 3 aprilie 2019 18:11:02
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
int a[500005];
char s[10000005];
ifstream f("secventa.in");
ofstream g("secventa.out");
deque <int> D;
int n,k,dmaxx=-1e9,d,u;
int main()
{   f>>n>>k; f.get();
    f.getline(s,10000005);
    for(int j=0,i=1;i<=n;i++)
    {   int sign=1;
        if(s[j]==' ') j++;
        if(s[j]=='-') {sign=-1; j++;}
        while('0'<=s[j] and s[j]<='9') {a[i]=a[i]*10+s[j]-'0'; j++;}
        a[i]=a[i]*sign;
    }
    for(int i=1;i<=n;i++)
    {   while(!D.empty() and a[i]<a[D.back()]) D.pop_back();
        D.push_back(i);
        if(D.front()<=i-k) D.pop_front();
        if(i>=k)
        {   d=a[D.front()];
            if(d>dmaxx) {dmaxx=d; u=i;}
        }
    }
    g<<u-k+1<<" "<<u<<" "<<dmaxx;
    g.close();
    return 0;
}