Cod sursa(job #3321157)

Utilizator SoniaMaria2008Sonia Maria Manjina SoniaMaria2008 Data 8 noiembrie 2025 12:27:06
Problema Secventa Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
#include <limits.h>
using namespace std;

int main() {
    ifstream f("secventa.in");
    ofstream g("secventa.out");

    int n, k;
    f >> n >> k;
    vector<int> a(n);
    for(int i=0;i<n;i++) f >> a[i];

    deque<int> dq;
    int best = INT_MIN;
    int start, fin;

    for(int i=0;i<n;i++) {
        while(!dq.empty() && a[dq.back()] >= a[i])
            dq.pop_back();
        dq.push_back(i);

        if(dq.front() <= i - k)
            dq.pop_front();

        if(i >= k-1) {
            if(a[dq.front()] > best) {
                best = a[dq.front()];
                start = i - k + 1;
                fin = i;

                // Extindem secventa cat timp elementele urmatoare >= best
                int j = i + 1;
                while(j < n && a[j] >= best) {
                    fin = j;
                    j++;
                }
            }
        }
    }

    g << start + 1 << " " << fin + 1 << " " << best;
}