제출 #209824

#제출 시각아이디문제언어결과실행 시간메모리
209824nicolaalexandraZalmoxis (BOI18_zalmoxis)C++14
0 / 100
310 ms6524 KiB
#include <bits/stdc++.h>
#define DIM 1000010
using namespace std;
int v[DIM];
int n,i,poz,sol,idx,k,sol_poz;
/*void solve (int val){
    if (val == 1 || sol)
        return;

    if (v[idx] == val-1){
        /// inseamna ca in stanga nu ma mai duc deloc
        idx++;
    } else {
        /// pot sa ma duc
        if (v[idx] > val-1){
            sol = val-1, poz = idx-1;
            return;
        }
        solve (val-1);
    }

    /// acum dreapta
    if (v[idx] == val-1)
        idx++;
    else {
        if (v[idx] > val-1){
            sol = val-1, poz = idx-1;
            return;
        }
        solve (val-1);
    }
}*/

int solve (int val, int idx){
    if (sol)
        return 0;

    if (v[idx] == val) /// nu mai pot sa ma duc in stanga ca am deja valoarea
        return idx + 1;

    if (!val)
        return 0;
    /// stanga
    val--;
    int poz = solve (val,idx);

    if (v[poz] > val || v[poz] == 0){
        sol = val;
        sol_poz = poz-1;
        return poz;
    }

    /// dreapta
    return solve (val,poz);
}

int main (){

    //ifstream cin ("zalmoxis.in");
    //ofstream cout ("zalmoxis.out");

    cin>>n>>k;
    for (i=1;i<=n;i++)
        cin>>v[i];

    //idx = 1;
    solve (30,1);

    for (i=1;i<=n;i++){
        cout<<v[i]<<" ";
        if (i == sol_poz)
            cout<<sol<<" ";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...