Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- set<int> k;
- double avg;
- int cnt;
- int main() {
- int n;
- cin >> n;
- avg = 0;
- cnt = 0;
- for (int i = 0; i < n; ++i) {
- int x;
- cin >> x;
- avg += x;
- k.insert(x);
- }
- avg /= n;
- if (floor(avg) != avg) {
- cout << "GRESHKA";
- } else {
- cout << "avg:" << avg << endl;
- {
- auto it = k.find(avg);
- while (it != k.end() && *it == avg) {
- k.erase(it);
- it++;
- }
- }
- for (auto it=k.begin(); it!=k.end(); ++it) cout << *it << " ";
- cout << endl;
- while (!k.empty()) {
- auto itl = prev(k.end());
- auto itp = k.begin();
- int l = *itl;
- int p = *itp;
- if (l > avg) {
- int r = l - avg;
- l = avg;
- p += r;
- cnt += r;
- k.erase(itl);
- k.erase(itp);
- if (p > avg) {
- int r1 = p - avg;
- l += r1;
- p = avg;
- cnt -= r1;
- k.insert(l);
- } else {
- k.insert(p);
- }
- }
- else if (p < avg) {
- int r = avg - p;
- p = avg;
- l -= r;
- cnt += r;
- k.erase(itl);
- k.erase(itp);
- if (l < avg) {
- int r1 = avg - l;
- p -= r1;
- l = avg;
- cnt -= r1;
- k.insert(p);
- } else {
- k.insert(l);
- }
- }
- else {
- break;
- }
- for (auto it=k.begin(); it!=k.end(); ++it) cout << *it << " ";
- cout << endl;
- }
- cout << cnt;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement