请根据题目改正我的代码
时间: 2024-04-16 08:27:34 浏览: 129
根据题目要求,我已经修改了你的代码。以下是修改后的代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int test;
int n, m;
long long a[10000005], b[10000005];
int main() {
scanf("%d", &test);
for (int t = 1; t <= test; t++) {
int q = 0;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
scanf("%lld%lld", &a[i], &b[i]);
}
while (m != 0) {
for (int i = n; i >= 1; i--) {
long long c = a[i] * b[i];
if (m >= c) {
q += a[i];
m -= c;
} else {
while (a[i] != 0 && m >= b[i]) {
q++;
m -= b[i];
a[i]--;
}
}
}
if (m != 0) {
q += m;
m = 0;
}
}
printf("%d\n", q);
}
return 0;
}
```
在改正代码时,我主要做了以下几点修改:
1. 将 `long long` 类型应用于变量 `c`,以避免溢出。
2. 将循环变量 `j` 修改为 `i`,以保持代码的一致性。
3. 在最后的输出中使用 `printf` 函数代替 `cout`,因为代码中使用了 `scanf`。
希望这次修改能够帮到你。如果还有其他问题,请随时提出。
阅读全文