248342026-02-15 22:51:53pirosmacska10Kövek (100 pont)cpp17Wrong answer 27/10014ms1984 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
#include <string>
#include <cmath>
#include <queue>

using namespace std;
using ll=long long;

const ll INF=LLONG_MAX;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    cin >> n;
    ll summ = 0;
    vector<ll> nums(n);
    for(int i = 0; i < n; i++) {
        cin >> nums[i];
        summ += nums[i];
    }
    ll avg = summ / n;
    vector<ll> miss(n);
    for(int i = 0; i < n; i++) {
        miss[i] = nums[i] - avg;
    }
    sort(miss.begin(), miss.end());
    int r = n-1;
    int l = 0;
    ll run = 0;
    ll ans = 0;
    while(l < r) {
        while(miss[l] == 0 && l < r) l++;
        while(miss[r] == 0 && l < r) r--;
        if(l >= r) break;
        if(-miss[l] - run == miss[r]) {
            l++;
            r--;
            ans++;
        }
        else if(-miss[l] - run < miss[r]) {
            run += miss[l++];
            ans++;
        }
        else if(-miss[l] - run > miss[r]) {
            run += miss[r--];
            ans++;
        }
    }
    cout << ans;
}
SubtaskSumTestVerdictTimeMemory
base27/100
1Accepted0/01ms508 KiB
2Wrong answer0/014ms1844 KiB
3Accepted5/51ms316 KiB
4Accepted5/51ms508 KiB
5Wrong answer0/51ms316 KiB
6Wrong answer0/51ms316 KiB
7Accepted5/51ms316 KiB
8Accepted5/52ms316 KiB
9Accepted7/71ms536 KiB
10Wrong answer0/71ms316 KiB
11Wrong answer0/81ms316 KiB
12Wrong answer0/81ms316 KiB
13Wrong answer0/81ms316 KiB
14Wrong answer0/82ms568 KiB
15Wrong answer0/86ms1004 KiB
16Wrong answer0/813ms1588 KiB
17Wrong answer0/814ms1984 KiB