64ptsWA求助
查看原帖
64ptsWA求助
1287433
__ycy1124__楼主2024/8/2 08:54

求正确性问题出在哪里

#include<bits/stdc++.h>
using namespace std;
struct Node{
	int w,bj;
}a[100001];
bool cmp(Node x1,Node x2){
	if(x1.w==x2.w){
		return x1.bj<x2.bj;
	}
	else{
		return x1.w<x2.w;
	}
}
int main(){
	int n,k;
	long long m;
	scanf("%d%d%lld",&n,&k,&m);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&a[i].w,&a[n+i].w);
		a[n+i].bj=1;
	}
	int ans=0;
	sort(a+1,a+2*n+1,cmp);
	int i=1;
	while(m-a[i].w>0&&i<=2*n){
		if(k-a[i].bj>=0){
			m-=a[i].w;
			ans++;
			k-=a[i].bj;
		}
		i++;
	}
	cout<<ans;
	return 0;
}
2024/8/2 08:54
加载中...