Cod sursa(job #1967984)

Utilizator 3DwArDPauliuc Edward 3DwArD Data 17 aprilie 2017 13:16:00
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n,k,v[500003];
int main()
{
    f>>n>>k;
    string s;
    f.get();
    getline(f, s);
    short semn = 1;
    int x,t=0;
    for(int i = 0; i < s.size(); ++i)
    {
        if(s[i] == '-') semn = -1;
        if(isdigit(s[i]))
        {
            x = 0;
            while(isdigit(s[i]))
            {
             x = x * 10 + s[i] - '0';
             ++i;
            }
            x *= semn;
            v[++t] = x;
            x = 0;
            semn = 1;
        }
    }
    int ans=INT_MIN,ansi,ansj;
    deque <int> d;
    for(int i=1;i<=n;i++){
        while(!d.empty()&&v[d.back()]>v[i])d.pop_back();
        d.push_back(i);
        if(d.front()==i-k)d.pop_front();
        if(i>=k&&v[d.front()]>ans){
                ans=v[d.front()];
                ansj=i;
                ansi=i-k+1;
        }
    }
    g<<ansi<<" "<<ansj<<" "<<ans;
    return 0;
}