Cod sursa(job #1003252)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 30 septembrie 2013 08:00:09
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <cstring>
#include <deque>

using namespace std;

ifstream fin("secventa.in");
ofstream fout("secventa.out");

int n,k,bestbase,ok;
int v[500001];

deque <int> d;

int main()
{
    fin>>n>>k;
    for (int i=1; i<=n; ++i)
    {
        fin>>v[i];

        while (!d.empty() && v[i] < v[d.back()]) d.pop_back();
        d.push_back (i);

        if (i - d.front() + 1 > k) d.pop_front ();

        if (v[d.front()] > bestbase) bestbase = v[d.front()];
    }

    for (int i=1; i<=n; ++i)
    {
        if (v[i]==bestbase)
        {
            ok=0;
            for (int j=i-1; j>=1;--j)
            {
                if (v[j] < bestbase)
                {
                    fout<<j+1<<" "<<j+k<<" "<<bestbase;
                    ok=1;
                    break;
                }
            }
            if (ok) break;
            fout<<1<<" "<<k<<" "<<bestbase;
        }
    }


}