Cod sursa(job #2266466)

Utilizator q1e123Solca Robert-Nicolae q1e123 Data 22 octombrie 2018 18:14:13
Problema Secventa Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include<deque>
#include <climits>
using namespace std;

ifstream INPUT_FILE("secventa.in");
ofstream OUTPUT_FILE("secventa.out");

deque<int>d;
int n,k;

int main() {
    ios::sync_with_stdio(false);
    INPUT_FILE.tie(0);
    OUTPUT_FILE.tie(0);
    int bazaMaxima = INT_MIN, st, dr;
    st = dr = -1;
    INPUT_FILE >> n >> k;
    int elem[n];
    for (int i = 0; i < n; ++i) {
        INPUT_FILE >> elem[i];
        while (!d.empty() && elem[i] <= elem[d.back()]) d.pop_back();
        d.push_back(i);

        if (i-d.front()>=k) d.pop_front();
        if (i>k && elem[d.front()] > bazaMaxima) {
            bazaMaxima = elem[d.front()];
            st = i - k + 2;
            dr = i + 1;
        }
    }
    OUTPUT_FILE<<st<<" "<<dr<<" "<<bazaMaxima;
    return 0;
}