10pts求助(样例没过)
查看原帖
10pts求助(样例没过)
681558
Weizhuo_Zhao楼主2024/5/22 20:26
#include <bits/stdc++.h>
using namespace std;

int main() {
	int w, n, a[30005] = {};
	cin >> w >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	int ans = 0, Min = 1;
	for (int i = n; i >= 1; i--) {
		if (a[i] == 0)
			continue;
		int k = Min;
		while (a[k] == 0)
			k++;
		Min = k;
		for (int j = Min; j <= n; j++) {
			if (i == j)
				continue;
			if (a[i] + a[j] == w) {
				ans++;
				a[i] = 0;
				a[j] = 0;
			}
			if (a[i] + a[j] > w) {
				if (j == Min)
					continue;
				ans++;
				a[i] = 0;
				a[j - 1] = 0;
				break;
			}
		}
	}
	for (int i = 1; i <= n; i++)
		if (a[i] != 0)
			ans++;
	cout << ans;
	return 0;
}
2024/5/22 20:26
加载中...