60pts 求助
查看原帖
60pts 求助
1351155
liuzhuoran141516楼主2024/9/30 16:43
#include <bits/stdc++.h>
#define end return 0
using namespace std;
int n, a[55], l, r, ans;
int main() {
	cin >> n;
	int sum = 0;
	for (int i = 1; i <= n; i ++) {
		cin >> a[i];
		sum += a[i];
	}
	cin >> l >> r;
	if (sum / n < l) {
		cout << -1;
		end;
	} else if (sum / n == r) {
		if (sum % r != 0) {
			cout << -1;
			end;
		}
	} else if (sum / n > r) {
		cout << -1;
		end;
	}
	sort(a + 1, a + n + 1);
	for (int i = 1; i <= n; i ++) {
		for (int j = 1; j <= n; j ++) {
			if (a[j] > r) {
				while (a[j] > r) {
					a[1] ++;
					a[j] --;
					ans ++;
					if (a[1] >= r) {
						swap(a[1], a[n]);
					}
				}
			} else if (a[j] < l) {
				while (a[j] < l) {
					a[n] --;
					a[j] ++;
					ans ++;
					if (a[n] <= l) {
						swap(a[n], a[1]);
					}
				}
			}	
		}
	}
	cout << ans;
    end;
}
2024/9/30 16:43
加载中...