Submission #219131

#TimeUsernameProblemLanguageResultExecution timeMemory
2191312fat2codeZalmoxis (BOI18_zalmoxis)C++17
0 / 100
175 ms29284 KiB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define all(a) (a).begin(), (a).end()
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define sz() size()
#define fr first
#define sc second
#define pi pair<int,int>
#define pii pair<pair<int,int>,int>
#define mp make_pair
#define int long long
#define rc(s) return cout<<s,0
#define rcc(s) cout<<s,exit(0)
using namespace std;

const int mod=1e9+7;
const int modp=1999999973;
const int modulo=998244353;

const int nmax=1000005;

int n,k,a[nmax];
vector<pair<int,int>>pref;
vector<int>vecc,ans;

int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
    srand(chrono::steady_clock::now().time_since_epoch().count());
 //   ifstream cin("input.in");
    cin >> n >> k;
    for(int i=1;i<=n;i++) cin >> a[i];
    for(int i=1;i<=n;i++){
        if(vecc.size()){
            if(a[i]>=vecc.back()){
                while(a[i]>vecc.back()){
                    int curr=vecc.back();
                    vecc.pop_back();
                    vecc.push_back(curr+1);
                    pref.push_back({curr,1});
                }
                pref.push_back({a[i],0});
                int curr=a[i];
                while(vecc.size() && curr==vecc.back()){
                    vecc.pop_back();
                    curr++;
                }
                vecc.push_back(curr);
            }
            else{
                pref.push_back({a[i],0});
                vecc.push_back(a[i]);
            }
        }
        else{
            vecc.push_back(a[i]);
            pref.push_back({a[i],0});
        }
    }
    for(auto it:pref) cout << it.fr << ' ';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...