Cod sursa(job #2832249)

Utilizator db_123Balaban David db_123 Data 13 ianuarie 2022 11:09:22
Problema Secventa Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <climits>

using namespace std;

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

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

int n,k;
vector<int> 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];
    }
}

void solve(){
    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;
    }

    for(int i=n;i>=pozMax;i--){
        cout<<v[i]<<" ";
    }

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

int main() {

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