ln001 @ 2022-10-19 14:54:59
自己写的代码,但不知道为什么要战术-1 。。。
#include <bits/stdc++.h>
using namespace std;
struct pg{
long long zl;
long long gd;
};
long long n,s,a,b;
vector<pg> v;
bool cmp1(pg shu1,pg shu2){return shu1.zl<shu2.zl;}
int main(){
cin>>n>>s;
cin>>a>>b;
if(n==0){cout<<0;return 0;}
a+=b;
v.reserve(n);
for(long long i=0;i<n;i++){
cin>>v[i].gd;
cin>>v[i].zl;
}
sort(v.begin(),v.begin()+n,cmp1);
long long i=0,p=0;
while(s>=0){
if(v[i].gd<=a){
s-=v[i].zl;
p++;
}
i++;
}
cout<<--p;
return 0;
}
by xingke233 @ 2022-10-19 15:07:43
@ln001
3 3
10 6
11 1
12 1
13 1
by xingke233 @ 2022-10-19 15:08:00
@ln001
应该输出 3
by xingke233 @ 2022-10-19 15:09:52
@ln001
while(s>=0){
if(v[i].gd<=a){
s-=v[i].zl;
p++;
}
i++;
}
当 s<v[i] 的时候 程序还是 p++
但这已经不满足了,所以你最后 -1
只能说数据太水了
by xingke233 @ 2022-10-19 15:12:23
@ln001
并且 while 语句写的很奇怪
3 4
10 6
11 1
12 1
13 1
完全可以 hack 程序
by LF_Eternity @ 2022-10-19 15:19:46
力气不够也不能摘啊! 在样例中你已经力气不够摘了,可是你却没判断
by LF_Eternity @ 2022-10-19 15:23:49
@xingke233 不是太水了,无论怎样都会变成负数(除非淘淘的力气可以摘所有的苹果)
by xingke233 @ 2022-10-19 15:24:41
@L_Y_F
没有特殊数据卡
by ln001 @ 2022-10-19 17:42:34
@L_Y_F 还是不明白啊