Cod sursa(job #822337)

Utilizator marinutzacatana marina marinutza Data 23 noiembrie 2012 12:01:43
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<deque>
#define nmax 500010
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque <int> deq;
int i,n,k,x[nmax],s,p,u;
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)
        f>>x[i];
    for(i=1;i<=k;i++)
    {
        while(!deq.empty() && x[i]<=x[deq.back()])
        deq.pop_back();
        deq.push_back(i);
    }
    s=x[deq.front()];
    p=1;
    u=k;
    for(i=k+1;i<=n;i++)
    {
        while(!deq.empty() && x[i]<=x[deq.back()])
        deq.pop_back();
        deq.push_back(i);
        if(deq.front()==i-k)
        deq.pop_front();
        if(x[deq.front()]>s)
        {
            s=x[deq.front()];
            p=i-k+1;
            u=i;
        }
    }
    g<<p<<' '<<u<<' '<<s;
    return 0;
}