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;
}