Cod sursa(job #2915800)

Utilizator db_123Balaban David db_123 Data 25 iulie 2022 09:26:11
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>
#include <climits>
#include <queue>

using namespace std;

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


class Info{
public:
    int nr;
    int pos;
};

class Compare{
public:
    bool operator()(Info a,Info b){
        return a.nr>b.nr;
    }
};

int n,k;
vector<Info> v;
priority_queue<Info,vector<Info>,Compare> PQ;

void read(){
    cin>>n>>k;
    v.resize(n+1);
    for(int i=1;i<=n;i++){
        cin>>v[i].nr;
        v[i].pos=i;
    }
}

Info addSeq(int startSeq,int endSeq){
    while(!PQ.empty())PQ.pop();
    for(int i=startSeq;i<=endSeq;PQ.push(v[i]),i++);
    return PQ.top();
}
void solve(){
    Info minElem,maxElem;
    maxElem.nr = INT_MIN;

    for(int i = 1;i<=n-k+1;i++){
        minElem = addSeq(i,i+k-1);
        if(maxElem.nr < minElem.nr)
            maxElem = minElem;
    }
    cout<<maxElem.pos<<" "<<maxElem.pos+k-1<<" "<<maxElem.nr;
}

int main() {

    read();
    solve();
    return 0;
}