129152025-01-03 15:08:28PappMatyasKövek (100 pont)cpp17Időlimit túllépés 76/100298ms640 KiB
#include <iostream>

using namespace std;

int Adder(int A[], int start, int stop)
{
    int ans = 0;
    for(int i = start; i < stop; i++)
    {
        ans += A[i];
    }
    return ans;
}

int main()
{
    int n, A[100000], id, total = 0, before, after,difa, difb, answer = 0;
    bool sorted = false;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> A[i];
        total+=A[i];
    }
    id = total / n;
    while(!sorted)
    {
        sorted = true;
        for(int i = 0; i < n; i++)
        {
            if(A[i] > id)
            {
                sorted = false;
                before = Adder(A, 0, i);
                after = Adder(A, i + 1, n);
                difb = id * i - before;
                difa = id * (n - i - 1) - after;
                if(difa > 0)
                {
                    A[i]-=difa;
                    A[i+1]+=difa;
                    answer++;
                }
                if(difb > 0)
                {
                    A[i]-= difb;
                    A[i-1]+= difb;
                    answer++;
                }
            }
        }
    }
    cout << answer;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base76/100
1Elfogadva0/01ms320 KiB
2Időlimit túllépés0/0284ms568 KiB
3Elfogadva5/51ms320 KiB
4Elfogadva5/52ms320 KiB
5Elfogadva5/51ms504 KiB
6Elfogadva5/51ms320 KiB
7Elfogadva5/51ms320 KiB
8Elfogadva5/51ms320 KiB
9Elfogadva7/71ms320 KiB
10Elfogadva7/71ms320 KiB
11Elfogadva8/81ms348 KiB
12Elfogadva8/81ms320 KiB
13Elfogadva8/88ms416 KiB
14Elfogadva8/850ms412 KiB
15Időlimit túllépés0/8298ms320 KiB
16Időlimit túllépés0/8298ms640 KiB
17Időlimit túllépés0/8280ms572 KiB