第四个测试点过不去……

P1478 陶陶摘苹果(升级版)

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反正我是用的优先队列


|