70572023-12-29 08:22:55MagyarKendeSZLGKártya (80 pont)cpp17Hibás válasz 18/803ms3788 KiB
#include <bits/stdc++.h>

#define speed cin.tie(0); ios::sync_with_stdio(0)
#define cinv(v) for (auto& e : v) cin >> e;
#define all(v) v.begin(), v.end()
#define has(s, e) s.count(e)

using namespace std;
using ll = long long;
using u16 = unsigned short;
using point = array<int, 2>;

int main() {
    speed;

    u16 N;
    cin >> N;
    vector<u16> A(N);
    cinv(A);

    u16 sum = accumulate(all(A), 0);

    if (sum % N) {
        cout << sum << ' ' << N << ' ' << (sum % N) << '\n';
        cout << "NEM\n" << N - (sum % N);
    } else {
        cout << "IGEN\n";

        u16 avg = sum / N;
        vector<u16> diffS(N);
        vector<bool> done(N);

        for (u16 i = 0; i < N; i++) {
            if (A[i] > avg) {
                u16 diff = diffS[i] = A[i] - avg;
                A[i] = avg;
                done[i] = 1;
                

                for (u16 j = 0; j < N && diff; j++) {
                    if (A[j] < avg) {
                        u16 give = min((u16)(avg - A[j]), diff);
                        A[j] += give;
                        diff -= give;

                        if (A[j] = avg) {
                            done[j] = 1;
                        }
                    }
                }
/*
                for (int n : A) cout << n << ' ';
                cout << '\n';
*/
                if (accumulate(all(done), 0) == N) {
                    break;
                }
            }
        }

        for (int diff : diffS) cout << diff << ' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base18/80
1Elfogadva0/03ms1824 KiB
2Hibás válasz0/03ms2016 KiB
3Elfogadva4/43ms2104 KiB
4Hibás válasz0/53ms2128 KiB
5Elfogadva5/53ms2328 KiB
6Hibás válasz0/53ms2540 KiB
7Elfogadva5/53ms2776 KiB
8Hibás válasz0/43ms2872 KiB
9Elfogadva4/43ms3104 KiB
10Hibás válasz0/53ms3192 KiB
11Hibás válasz0/53ms3144 KiB
12Hibás válasz0/53ms3144 KiB
13Hibás válasz0/63ms3244 KiB
14Hibás válasz0/63ms3476 KiB
15Hibás válasz0/73ms3456 KiB
16Hibás válasz0/73ms3604 KiB
17Hibás válasz0/73ms3788 KiB