129172025-01-03 15:22:49PappMatyasKövek (100 pont)cpp17Elfogadva 100/10027ms1524 KiB
#include <iostream>

using namespace std;


int main()
{
    int n, A[100000], id, before, after,difa, difb, answer = 0;
    long long BEF[100001], total = 0;
    bool sorted = false;
    cin >> n;
    BEF[0] = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> A[i];
        total+=A[i];
        BEF[i + 1] = total;
    }
    id = total / n;
    while(!sorted)
    {
        sorted = true;
        for(int i = 0; i < n; i++)
        {
            if(A[i] > id)
            {
                sorted = false;
                before = BEF[i];
                after = total - BEF[i] - A[i];
                difb = id * i - before;
                difa = id * (n - i - 1) - after;
                if(difa > 0)
                {
                    A[i]-=difa;
                    A[i+1]+=difa;
                    BEF[i+1]-=difa;
                    answer++;
                }
                if(difb > 0)
                {
                    A[i]-= difb;
                    A[i-1]+= difb;
                    BEF[i]+=difb;
                    answer++;
                }
            }
        }
    }
    cout << answer;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms320 KiB
2Elfogadva0/027ms1328 KiB
3Elfogadva5/51ms320 KiB
4Elfogadva5/51ms320 KiB
5Elfogadva5/51ms320 KiB
6Elfogadva5/51ms320 KiB
7Elfogadva5/51ms320 KiB
8Elfogadva5/51ms320 KiB
9Elfogadva7/71ms320 KiB
10Elfogadva7/71ms320 KiB
11Elfogadva8/81ms388 KiB
12Elfogadva8/81ms320 KiB
13Elfogadva8/82ms320 KiB
14Elfogadva8/83ms524 KiB
15Elfogadva8/89ms732 KiB
16Elfogadva8/824ms1260 KiB
17Elfogadva8/827ms1524 KiB