Cod sursa(job #2205361)

Utilizator DordeDorde Matei Dorde Data 18 mai 2018 21:38:03
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#define pb push_back
using namespace std;
char const in [] = "secventa.in";
char const out [] = "secventa.out";
int const NM = 5e5 + 7;
int v [NM];
#include <deque>
deque <int> q;
ifstream cin (in);
ofstream cout (out);
int main()
{
    int n , i , k , nr , c2 , c3 = - (1 << 30);
    cin >> n >> k;
    for(i = 1 ; i <= n ; ++ i)
        cin >> v [i];
    for(i = 1 ; i <= n ; ++ i)
    {
        if(q . empty ())
            q . pb (1);
        else
        {
            while(! q . empty () && v [i] <= v [q . back ()])
                q . pop_back ();
            if(q . front () < i - k + 1)
                q . pop_front ();
            q . push_back (i);
            int a = q . front ();
            if(! q . empty () && i >= k && v [q . front ()] > c3)
            {
                c3 = v [q . front ()];
                c2 = i;
            }
        }
    }
    cout << c2 - k + 1 << ' ' << c2 << ' ' << c3;
    return 0;
}