# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
99767 | choikiwon | Gift (IZhO18_nicegift) | C++17 | 2075 ms | 233784 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MN = 1000010;
int N, K;
priority_queue<pair<ll, int> > pq;
vector<vector<int> > S;
vector<ll> X;
int main() {
std::ios::sync_with_stdio(false);
cin >> N >> K;
ll sum = 0;
for(int i = 0; i < N; i++) {
ll t; cin >> t;
pq.push({t, i});
sum += t;
}
if(sum % K) {
cout << -1;
return 0;
}
while(!pq.empty()) {
vector<pair<ll, int> > V;
for(int i = 0; i < K; i++) {
if(pq.empty()) {
while(1);
}
V.push_back(pq.top());
pq.pop();
}
/*
for(int i = 0; i < V.size(); i++) {
cout << V[i].first << ' ';
}
cout << endl;
//*/
if(pq.empty() || V.back().first < V[0].first - pq.top().first) {
X.push_back(V.back().first);
S.push_back(vector<int>());
for(int i = 0; i < K; i++) {
S.back().push_back(V[i].second);
V[i].first -= X.back();
}
}
else {
ll d = (V.back().first + K - 2) * (K - 1) / K;
ll t = V[0].first - pq.top().first;
X.push_back(max(t, V.back().first - d));
S.push_back(vector<int>());
for(int i = 0; i < K; i++) {
S.back().push_back(V[i].second);
V[i].first -= X.back();
}
}
//cout << X.back() << endl;
for(int i = 0; i < K; i++) {
if(V[i].first) {
pq.push(V[i]);
}
}
}
cout << X.size() << '\n';
for(int i = 0; i < X.size(); i++) {
cout << X[i] << ' ';
for(int j = 0; j < S[i].size(); j++) {
cout << S[i][j] + 1 << ' ';
}
cout << '\n';
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |