这道题我觉得注意一点点即可,一组数据最多只能只是2个,所以用两个辅助变量讨论一下即可

#include<bits/stdc++.h>

using namespace std;
typedef long long ll;	// 严格要求
int a[100010];
int main(){
	ios :: sync_with_stdio(0);	// 提高cin、cout的运行速度
	ll w, n;
	cin >> w >> n;
	
	for(int i = 1; i <= n; i++){
		cin >> a[i];
	}
	
	sort(a + 1, a + 1 + n);
	
	ll x = 1, y = n, sum = 0;
	
	while(x <= y){
		if(a[x] + a[y] > w){
			y--;
		} 
		else if(a[x] + a[y] <= w){
			y--;
			x++;
		}
		sum++;
	}
	
	cout << sum << endl;

    return 0;
}


Logo

集算法之大成!助力oier实现梦想!

更多推荐