lijiatu123 @ 2023-03-19 09:42:41
#include<bits/stdc++.h>
using namespace std;
typedef struct {
int g,l;
} h;
int cmp(h p,h o) {
return p.l<o.l;
}
int main() {
int n,s,i,a,b;
h q[10000]={0};
cin>>n>>s;
cin>>a>>b;
for(i=1; i<=n; i++) {
cin>>q[i].g>>q[i].l;
}
sort(q+1,q+n+1,cmp);
for(i=1; i<=n; i++) {
if((a+b)<q[i].g)
continue;
else {
if(q[i]>s)
break;
else {
s-=q[i].l;
}
}
}
printf("%d",i-1);
return 0;
}
by Furthe77oad @ 2023-03-19 09:46:42
结构体用错了,可以考虑重写,重新梳理一遍思路就不会有问题了(逃
by lraM416 @ 2023-03-19 09:56:34
奇怪的结构体用法
by Terrible @ 2023-03-19 10:09:37
if(q[i]>s)
是结构体和整数的比较,没有重载运算符,因而会报错。
另外,在 C++ 里,不需要特别使用typedef
更改结构体名称。
by Terrible @ 2023-03-19 10:10:08
你本地编译通过了吗?
by Lysea @ 2023-03-19 10:13:58
struct node{
int g,l;
}h;
by Lysea @ 2023-03-19 10:14:09
@lijiatu123
by Lysea @ 2023-03-19 10:15:27
h不是结构体的名字,而是结构(
by LIhixuan @ 2023-03-19 12:32:02
什么结构体?? 改一下