Cod sursa(job #2626844)

Utilizator Amelia_MilcuMilcu Amelia Amelia_Milcu Data 8 iunie 2020 16:51:42
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <deque>
#include <string.h>
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=1,t=1;
char s[4000005];

int main()
{
    fin>>n>>k;
    fin.get();
    fin.getline(s,4000000);
    j=strlen(s);
    for(i=0; i<j; i++)
    {
        if(s[i]=='-')
            semn=-1;
        else if(isdigit(s[i]))
            v[t]=v[t]*10+s[i]-'0';
        else
        {
            v[t]*=semn;
            t++;
            semn=1;
        }
    }
    for(i=1; i<=n; 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;
}