刚刚翻到了我之前写的link
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,TIME,temp=1,maxx=-1,ans=0; cin >> TIME >> n;
double time[110],value[110];
for(int i=1;i<=n;i++) cin >> time[i] >> value[i];
while(temp!=n){
for(int i=1;i<=n;i++) if(time[i]/value[i]>maxx && time[i]<=TIME) maxx=time[i]/value[i];
for(int i=1;i<=n;i++) if(time[i]/value[i]==maxx && time[i]<=TIME){
ans+=value[i];
TIME-=time[i];
for(int j=i+1;j<=n;j++){
time[j]=time[j-1];
value[j]=value[j-1];
}
n--;
}
}
cout << ans;
return 0;
}
结果是这样的