解题思路

rqy和clccle一起刷题。
因为clccle太弱了,所以说她会跳过难度较高(h >= a)的题目,
同时,如果clccle的时间不足以切掉当前这道简单题(ct < T[i]),那么她同时也会跳过这道简单题目。
相对的,rqy要花掉两倍的时间去切掉一道难度较高(h >= b)的题目,但如果时间不够用(rt < 2*T[i]),她会跳过这道题目。
有一个特殊规定,她们只会按给定的顺序刷,现在两人的刷题列表是一样的,请求出在给定时间里clccle和rqy各最多能刷多少道题目。

C++代码

#include<cstdio>
#include<vector>
using namespace std;

int main(){
    int n;
    long long t, a, b;
    scanf("%d%lld", &n, &t);
    scanf("%lld%lld", &a, &b);
    vector<long long> T(n);
    for(int i=0; i<n; ++i)
        scanf("%lld", &T[i]);
    int cn = 0;
    int rn = 0;
    long long ct = t;
    long long rt = t;
    long long h;
    for(int i=0; i<n; ++i){
        scanf("%lld", &h);
        if(h<a && T[i]<=ct){
            ++cn;
            ct -= T[i];
        }

        if(h<b && T[i]<=rt){
            ++rn;
            rt -= T[i];
        }
        else if(h>=b && 2*T[i]<=rt){
            ++rn;
            rt -= 2*T[i];
        }
    }
    printf("%d %d\n", cn, rn);
    return 0;
}