Cod sursa(job #2832787)

Utilizator db_123Balaban David db_123 Data 14 ianuarie 2022 12:09:46
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <fstream>
#include <vector>
#include <climits>
#include <queue>

using namespace std;

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

#define FOR(i,a,b) for(int i=(a);i<=(b);i++)

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

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

int n,k;
vector<Info> v;
vector<int> minR;

void read(){
    cin>>n>>k;
    v.resize(n+1);
//    minR.resize(n+1,INT_MAX);
    FOR(i,1,n){
        cin>>v[i].nr;
        v[i].poz=i;
    }
}

/*void solve1(){
    FOR(i,n-k+2,n){
        minR[i]=-1;
    }
    FOR(i,n-k+1,n){
        minR[n-k+1]=min(minR[n-k+1],v[i]);
    }

    for(int i=n-k;i>0;i--){
        minR[i]=min(v[i],minR[i+1]);
    }

    int pozMax,mx=INT_MIN;
    for(int i=1;i<=n-k+1;i++){
        (mx<minR[i])?pozMax=i,mx=minR[i]:NULL;
    }

    cout<<pozMax<<" "<<n<<" "<<minR[pozMax];

//    for(int i=1;i<=n;i++){
//        cout<<minR[i]<<" ";
//    }
}*/

void solve2(){
    priority_queue<Info,vector<Info>,Compare> Q;
    FOR(i,1,n-k+1){
        Q.push(v[i]);
    }
    int nrMax=INT_MIN,pozMax=0;
    while(!Q.empty()){
        if(nrMax<Q.top().nr){
            nrMax=Q.top().nr;
            pozMax=Q.top().poz;
        }
        Q.pop();
    }
    cout<<pozMax<<" "<<n<<" "<<nrMax;
}

int main() {

    read();
    solve2();
    return 0;
}