Cod sursa(job #2856115)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 23 februarie 2022 13:05:04
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;
ifstream fin("secventa.in");
ofstream g("secventa.out");
int n,k;
int v[500005];
deque<int> q;
void Citire()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>v[i];
}
void Solve()
{
    int min1=v[1];
    int rasp_st=1;
    int rasp_dr=k;
    for(int i=1;i<=n;i++)
    {
        while(!q.empty() && v[q.back()]>=v[i])
            q.pop_back();
        q.push_back(i); 
        //cout<<q.front()<<" "<<q.back()<<" "<<" "<<min1<<"\n";
        if(!q.empty() && q.back()-q.front()==k)
        {
            q.pop_front();
        }
        if(!q.empty())
            if(i>=k)
                if(v[q.front()]>min1)
                {
                    rasp_dr=i;
                    rasp_st=i-k+1;
                    min1=v[q.front()];
                }
                
    }
    g<<rasp_st<<" "<<rasp_dr<<" "<<min1;
}
int main()
{
    Citire();
    Solve();
}