Submission #1133354

#TimeUsernameProblemLanguageResultExecution timeMemory
1133354MuhammetGift (IZhO18_nicegift)C++17
30 / 100
216 ms49500 KiB
#include "bits/stdc++.h" using namespace std; #define SZ(s) (int)s.size() #define ff first #define ss second #define ll long long int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n, k; cin >> n >> k; ll sm = 0, mx = 0; vector <ll> a(n+1); for(int i = 1; i <= n; i++){ cin >> a[i]; sm += a[i]; mx = max(a[i], mx); } if(sm % k != 0 or mx > (sm/k)){ cout << -1; return 0; } queue <pair<ll,int>> q[k+1]; int ind = 1, x = 1; ll s = 0, sk = sm/k; while(ind <= n){ ll y = min(sk-s,a[ind]); q[x].push({y,ind}); s += y; a[ind] -= y; if(a[ind] == 0) ind++; if(s == sk) x++, s = 0; } vector <vector <int>> v; while(!q[1].empty()){ ll mn = 1e18; vector <int> v1; for(int i = 1; i <= k; i++){ mn = min(mn, q[i].front().ff); } v1.push_back(mn); for(int i = 1; i <= k; i++){ v1.push_back(q[i].front().ss); q[i].front().ff -= mn; if(q[i].front().ff == 0) q[i].pop(); } v.push_back(v1); } cout << SZ(v) << '\n'; for(auto i : v){ for(auto j : i){ cout << j << ' '; } cout << '\n'; } return 0; }
#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...