holiday_1999 @ 2018-04-22 16:09:55
#include <iostream>
#include <limits.h>
using namespace std;
int i,j,k,sum=0,all=0;
int main()
{
int n,s,a,b;
int x[5001][2];
cin>>n>>s>>a>>b;
int high=a+b;
for(i=0;i<n;i++){
for(int j=0;j<2;j++){
cin>>x[i][j];
}
if(x[i][0]>high) {
i--;n--;
}
}
k=i;
for(i=0;i<k-1;i++){
int bo=i,t;
for(j=i+1;j<k;j++){
if(x[j][1]<x[bo][1]){
bo=j;
}
}
t=x[i][1];x[i][1]=x[bo][1];x[bo][1]=t;
}
for(i=0;i<k;i++){
if(sum+x[i][1]<s){
sum+=x[i][1];
all++;
}
}
cout<<all<<endl;
return 0;
}
by miaojiexi @ 2018-04-22 16:16:37
by holiday_1999 @ 2018-04-23 22:46:12
那我改一下,大佬帮忙看看哈
#include <iostream>
#include <limits.h>
using namespace std;
int i,j,k,sum=0,all=0;
int main()
{
int n,s,a,b;
int x[5001][2];
cin>>n>>s>>a>>b;
int high=a+b;
for(i=0;i<n;i++)
{
for(int j=0;j<2;j++)
{
cin>>x[i][j];
}
if(x[i][0]>high)
{
i--;n--;
}
}
k=i;
for(i=0;i<k-1;i++)
{
int bo=i,t;
for(j=i+1;j<k;j++)
{
if(x[j][1]<x[bo][1])
{
bo=j;
}
}
t=x[i][1];x[i][1]=x[bo][1];x[bo][1]=t;
}
for(i=0;i<k;i++)
{
if(sum+x[i][1]<s)
{
sum+=x[i][1];
all++;
}
}
cout<<all<<endl;
return 0;
}
by ZJH365 @ 2018-08-01 10:21:56
是小于等于吧 if(sum+x[i][1]<s)