Cod sursa(job #2208698)

Utilizator caesar2001Stoica Alexandru caesar2001 Data 30 mai 2018 23:26:06
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

ifstream cin("secventa.in");
ofstream cout("secventa.out");

const int NMAX = 500005;
int deq[NMAX], v[NMAX];

int main()
{
    ios::sync_with_stdio(false);
    int n, k;
    cin >> n >> k;
    for(int i = 1; i <= n; i ++)
        cin >> v[i];
    int st = 1, dr = 1;
    deq[1] = 1;
    int sol = 0, rsol = 1, lsol = 1;
    for(int i = 2; i <= n; i ++) {
        while(st <= dr && v[i] < v[deq[st]])
            st ++;
        deq[++dr] = i;
        if(k <= i && sol < v[deq[st]]) {
            sol = v[deq[st]];
            rsol = i;
            lsol = i - k + 1;
        }
        if(deq[dr] - deq[st] == k-1)
            st ++;
    }
    cout << lsol << " " << rsol << " " << sol;
    return 0;
}