Submission #139291

#TimeUsernameProblemLanguageResultExecution timeMemory
139291mechfrog88Zalmoxis (BOI18_zalmoxis)C++14
0 / 100
1092 ms57316 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("unroll-loops,no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace __gnu_pbds; using namespace std; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; typedef long long ll; typedef long double ld; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll n,k; cin >> n >> k; list <pair<ll,ll>> arr; vector <ll> ori; vector <ll> num(30,0); ll mini = 30; for (int z=0;z<n;z++){ ll temp; cin >> temp; num[temp]++; mini = min(temp,mini); arr.push_back(make_pair(temp,z)); ori.push_back(temp); } for (auto it = arr.begin();it != arr.end();){ auto ita = it; ita++; if (it->first == ita->first && ita->first == mini){ arr.insert(it,make_pair(it->first+1,it->second)); arr.erase(it); arr.erase(ita); it = arr.begin(); num[mini]-=2; num[mini+1]++; if (num[mini] == 0){ mini++; } } else { it++; } // for (auto itq = arr.begin();itq != arr.end();itq++){ // cout << itq->first << " "; // } cout << endl; } ll i = 0; ll q = 0; arr.push_back(make_pair(LLONG_MAX,0)); for (auto it = arr.begin();it != arr.end();it++){ if (it->first == mini){ i = it->second; q = it->first; break; } } for (int z=0;z<n;z++){ if (z == i) cout << q << " "; cout << ori[z] << " "; } cout << endl; } // 29 29 // 28 28 28 28 // 28 27 27 28 27 27 // 28 27 26 28 27 25 25 26
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...