按题意模拟即可
注意下clccle和rqy的难度边界,记得开long long
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll n, t;
ll a, b;
ll ca = 0;
ll cb = 0;
ll str[100010][5];
ll ta, tb;
cin >> n >> t >> a >> b;
ta = t;
tb = t;
for (ll i = 0; i < n; i++)
cin >> str[i][0];
for (ll i = 0; i < n; i++)
cin >> str[i][1];
for (ll i = 0; i < n; i++)
{
if (str[i][1] < a)
{
if (str[i][0] <= ta)
{
ta -= str[i][0];
ca++;
}
}
if (str[i][1] >= b)
{
if (2 * str[i][0] <= tb)
{
tb -= 2 * str[i][0];
cb++;
}
}
else if (str[i][1] < b)
{
if (str[i][0] <= tb)
{
tb -= str[i][0];
cb++;
}
}
}
cout << ca << " " << cb;
return 0;
}

京公网安备 11010502036488号