Cod sursa(job #2328259)

Utilizator stefantagaTaga Stefan stefantaga Data 25 ianuarie 2019 16:05:36
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque<int>c;
int n,k,i,s,v[500001],maxim=-32000,psm,pf,ps,semn,nr,ok,j;
char cc,ss[3500005];
int main()
{
    f>>n>>k;
    i=1;
    f.get();
    f.get(ss,3500000);
    j=0;
    semn=1;
    for(i=0;ss[i]!=0;i++)
    {
        nr=0;
        ok=0;
        if(ss[i]=='-')
        {
            semn=-1;
        }
        while(ss[i]>='0' && ss[i]<='9')
        {
            nr=nr*10+ss[i]-'0';
            i++;
            ok=1;
        }
        if(ok==1)
        {
            v[++j]=semn*nr;
            semn=1;
        }
    }
    c.push_back(1);
    for(i=2;i<=n;i++)
    {
        while(!c.empty()&&v[c.back()]>v[i])
        {
            c.pop_back();
        }
    c.push_back(i);
    if(c.back()-c.front()==k){c.pop_front();}
    if(i>=k&&v[c.front()]>maxim)
    {
        maxim=v[c.front()];
        psm=i-k+1;
        pf=i;
    }
    }
    g<<psm<<" "<<pf<<" "<<maxim;
    return 0;
}