zhouyan21 @ 2019-10-15 19:31:23
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, s, a, b, ans = 0, j = 0;
//j是为power数组创造的临时变量
int temp1 = 0;
int temp2 = 0;
int power[10000]{0};
cin >> n >> s >> a >> b;
for(int i = 1;i <= n;i++) {
cin >> temp1 >> temp2;
if(temp1 > a + b) {//判断是否够得到
continue;
} else {
power[j] = temp2;
j++;
}
}
sort(power,power+j);
//将所有力量话费从小到大排序
for(int i = 0;i <= j;i++) {
if(power[i] > s) break;//力量用光直接退出
s -= power[i];
ans++;
}
cout << ans;
return 0;
}
蒟蒻求教
by Lupus @ 2019-10-15 19:38:32
@zhouyan21 qwq你有没有考虑如果所有苹果淘淘都不够高呢qwq???
那样你快排后的数组0号位存的是0而且j也是0,照样可以进行下面的循环qwq。。。。
by zhouyan21 @ 2019-10-15 20:04:53
@Akagiの赤城
数据坑死人
by Lupus @ 2019-10-15 20:06:50
@zhouyan21 qwq所以说数组从1开始存多棒啊qwq。。。
by TommyBay @ 2019-10-19 11:35:02
@Akagiの赤城 大佬在吗? 我发现如果检测到都不够高,那么直接结束程序就可以AC。 但是,如果换一种方式,将yi数组全部初始化为101,就没法通过。(备注:本地测试数据可过,输出为0)
by Lupus @ 2019-10-20 14:35:39
@bigheadcat 一题多解嘛。。。qwq反正我是用的优先队列