Cod sursa(job #2626840)

Utilizator Amelia_MilcuMilcu Amelia Amelia_Milcu Data 8 iunie 2020 16:41:52
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque<int> dq;
int n,i,k,maxim=-2000000005,st,dr,v[500005],j,semn;
char s[4000005];
int main()
{
    fin>>n>>k;
    fin.get();
    fin.getline(s,4000000);
    i=1;
    j=0;
    if(s[0]=='-')
        semn=-1,j++;
    else
        semn=1;
    while(i<=n)
    {
        while(s[j]>='0' && s[j]<='9')
        {
            v[i]=v[i]*10+s[j]-'0';
            j++;
        }
        v[i]*=semn;
        i++;
        j++;
        if(s[j]=='-')
            semn=-1;
        else
            semn=1;

    }
    for(i=1; i<=n; i++)
    {
        fin>>v[i];
        while(!dq.empty() && v[dq.back()]>=v[i])
            dq.pop_back();
        dq.push_back(i);
        if(dq.front()==i-k)
            dq.pop_front();
        if(i>=k && v[dq.front()]>maxim)
        {
            maxim=v[dq.front()];
            st=i-k+1;
            dr=i;
        }
    }
    fout<<st<<" "<<dr<<" "<<maxim;
    return 0;
}