alexa has two stacks
Sun Sep 22 2024 09:10:40 GMT+0000 (Coordinated Universal Time)
Saved by
@CodeXboss
#include <iostream>
#include <vector>
using namespace std;
int twoStacks(int maxSum, const vector<int>& a, const vector<int>& b) {
int sum = 0, count = 0, i = 0, j = 0;
while (i < a.size() && sum + a[i] <= maxSum) {
sum += a[i];
i++;
}
count = i;
while (j < b.size() && i >= 0) {
sum += b[j];
j++;
while (sum > maxSum && i > 0) {
i--;
sum -= a[i];
}
if (sum <= maxSum) {
count = max(count, i + j);
}
}
return count;
}
int main() {
int g;
cin >> g;
while (g--) {
int n, m, maxSum;
cin >> n >> m >> maxSum;
vector<int> a(n);
vector<int> b(m);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < m; i++) {
cin >> b[i];
}
cout << twoStacks(maxSum, a, b) << endl;
}
return 0;
}
content_copyCOPY
Comments