Cod sursa(job #1964222)

Utilizator dragos231456Neghina Dragos dragos231456 Data 13 aprilie 2017 11:29:31
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque<int> poz,sec;
string s;
int n,k,x,mx=-30001,nr,i1,i2,rez;
bool ok;
int main()
{
    f>>n>>k; getline(f,s);
    getline(f,s);
    for(int i=0;i<s.size();++i)
    {
        if (s[i] == ' ')    continue;
        if (s[i] == '-')
        {
            x = 0;
            i++;
            while (s[i] != ' ' && i < s.size())
            {
                x = x * 10 - (s[i]-'0');
                i++;
            }
        }
        else if (s[i] != ' ')
        {
            x = 0;
            while (s[i] != ' ' && i < s.size())
            {
                x = x * 10 + (s[i]-'0');
                i++;
            }
        }
        nr++;
        if(!sec.empty() && poz.front()<=nr-k)
        {
            sec.pop_front();
            poz.pop_front();
        }
        while(!sec.empty() && sec.back()>=x)
        {
            sec.pop_back();
            poz.pop_back();
        }
        sec.push_back(x);
        poz.push_back(nr);
        if(i>=k)
        {
            if(sec.front()>mx && nr>=k)
            {
                mx=sec.front();
                i2=poz.back();
                i1=i2-k+1;
            }
        }
    }
    g<<i1<<' '<<i2<<' '<<mx;
    return 0;
}