Submission #1114649

#TimeUsernameProblemLanguageResultExecution timeMemory
1114649adiyerGift (IZhO18_nicegift)C++17
30 / 100
2073 ms236892 KiB
#include <bits/stdc++.h> #define adiyer(); ios_base::sync_with_stdio(0); cin.tie(0); #define all(x) (x.begin(), x.end()) #define pb push_back // #define int long long typedef long long ll; using namespace std; const int N = 1e6 + 11; const int mod = 1e9 + 7; const ll inf = 1e18 + 11; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); ll n, k; ll a[N]; set < pair < ll, ll >, greater < pair < ll, ll > > > st; vector < vector < ll > > ans; void solve(){ cin >> n >> k; for(ll i = 1; i <= n; i++) cin >> a[i], st.insert({a[i], i}); while(st.size() >= k){ vector < ll > pos = {1}; vector < pair < ll, ll > > del; for(auto it : st){ del.pb(it); pos.pb(it.second); if(del.size() == k) break; } for(auto it : del) st.erase(it); for(auto it : del) st.insert({it.first - 1, it.second}); while(st.size() && (st.rbegin() -> first) == 0) st.erase(*st.rbegin()); ans.pb(pos); } if(st.empty()){ cout << ans.size() << '\n'; for(auto it : ans){ for(ll x : it) cout << x << ' '; cout << '\n'; } } else{ cout << -1; } } const bool Cases = 0; signed main(){ adiyer(); int CS = 1; if(Cases) cin >> CS; while(CS--) solve(); }

Compilation message (stderr)

nicegift.cpp: In function 'void solve()':
nicegift.cpp:29:18: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<long long int, long long int>, std::greater<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   29 |  while(st.size() >= k){
      |        ~~~~~~~~~~^~~~
nicegift.cpp:35:18: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   35 |    if(del.size() == k) break;
      |       ~~~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...