#3WA求助
查看原帖
#3WA求助
760776
zzy_zzy楼主2023/2/16 18:08

RT.代码如下:

#include<bits/stdc++.h>
using namespace std;
struct node{
	int Pow,dmg;
	bool use;
}a[1010];
struct node2{
	int t,a_i;
}e[1010];
bool cmp(node x,node y){
	return x.dmg>y.dmg;
}
int main(){
	int n,maxn,reg,blood,sum=0,cnt=0,cnt1=0,tot=0;
	cin>>n>>maxn>>reg;
	blood=maxn;
	for(int i=1;i<=n;i++){
		cin>>a[i].Pow>>a[i].dmg;
	}
	int res=maxn;
	while(1){
		double x=(blood*100.0)/maxn;
		sort(a+1,a+n+1,cmp);
		for(int i=1;i<=n;i++){
			if(a[i].use==0&&a[i].Pow>=x){
				a[i].use=1;
				sum+=a[i].dmg;
				e[++cnt].t=cnt1;
				e[cnt].a_i=i;
				tot++;
			}
		}
		cnt1++;
		blood-=sum;
		blood+=reg;
		blood=min(maxn,blood);
		if(blood>=res){
			cout<<"NO"<<endl;
			return 0;
		}
		if(blood<=0){
			break;
		}
		res=blood;
	}
	cout<<"YES"<<endl<<cnt1<<" "<<tot<<endl;
	for(int i=1;i<=tot;i++){
		cout<<e[i].t<<" "<<e[i].a_i<<endl;
	}
	return 0;
}
2023/2/16 18:08
加载中...