Cod sursa(job #904655)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 4 martie 2013 18:05:20
Problema Secventa Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <deque>
using namespace std;

ifstream cin("secventa.in");
ofstream cout("secventa.out");
deque <int> dq;
int n, k, a[500005], i, maxi=-((1<<31)-1), st, dr;
inline int max(int a, int b)
{
    if(a>b) return a;
    return b;
}
int main()
{
    cin>>n>>k;
    for(i=1;i<=n;++i)
        {
            cin>>a[i];
            while(!dq.empty() && dq.back()>=a[i])
                dq.pop_back();
            dq.push_back(a[i]);
            if(i>k && dq.front()==a[i-k])
                dq.pop_front();
            if(i>=k)
                if(maxi<dq.front())
                    {
                        maxi=dq.front();
                        st=i-k+1;
                        dr=i;
                    }
        }
    cin.close();
    cout<<st<<" "<<dr<<" "<<maxi<<"\n";
    cout.close();
    return 0;
}