Submission #1140259

#TimeUsernameProblemLanguageResultExecution timeMemory
1140259AgageldiGift (IZhO18_nicegift)C++17
0 / 100
253 ms589824 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define N 1000001 #define ff first #define ss second #define pb push_back #define sz(s) (int)s.size() int n, t, m, jog[N], sum, cnt = 1, a[N]; deque <int> v[N], h[N]; int main () { ios::sync_with_stdio(0);cin.tie(0); cin >> n >> m; for(int i = 1;i <= n; i++) { cin >> a[i]; sum += a[i]; } if(sum % m != 0) { cout << "-1\n"; return 0; } for(int i=1;i<=n;i++) { if(sum / a[i] < m) { cout << "-1\n"; return 0; } } for(int i = 1; i <= n; i++) { if(jog[cnt] == sum / m) cnt++; if(jog[cnt] + a[i] <= sum / m) { v[cnt].pb(a[i]); h[cnt].pb(i); jog[cnt] += a[i]; continue; } v[cnt].pb(sum / m - jog[cnt]); h[cnt].pb(i); a[i] -= (sum / m - jog[cnt]); jog[cnt] += (sum / m - jog[cnt]); cnt++; v[cnt].pb(a[i]); h[cnt].pb(i); jog[cnt] += a[i]; } vector <ll> ans; while(sz(v[1]) > 0) { int mn = v[1][0]; cout<< mn << '\n'; bool tr = 0; for(int i = 1; i <= m; i++) { mn = min(mn,v[i][0]); } ans.pb(mn); for(int i=1;i<=m;i++) { ans.pb(h[i][0]); } for(int i = 1; i <= m; i++) { v[i][0] -= mn; if(!v[i][0]) { h[i].pop_front(); v[i].pop_front(); } } } cout << sz(ans) / (m + 1) << '\n'; for(int i = 0; i < sz(ans); i++) { cout << ans[i] << " "; if(i % (m + 1) == m) cout << '\n'; } }
#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...