C++错误:在抛出 what() 的实例后终止调用'std::bad_alloc':std::bad_alloc



我写了下面的代码来执行一些任务。

这是我的代码:

#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
int main() {
int t; cin >> t;
while (t--) {
long long int N; cin >> N;
vector<long long int> cars(N);
for (long long int i = 0; i < N; ++i) {
cin >> cars[i];
}
sort(cars.begin(), cars.end(), greater<long long int>());
long long int profit = 0;
for (long long int i = 0; i < N; ++i) {
if (cars[i]) {
profit += cars[i] - i;
}
}
cout << profit << endl;
}
return 0;
}

我真的不知道为什么我在提交代码时遇到此错误。谁能帮我摆脱困境。 输入 输入的第一行包含一个整数 T,表示测试用例的数量。T 测试用例的说明如下。 每个测试用例的第一行包含一个整数 N。 第二行包含 N 个空格分隔的整数 P1,P2,...,PN。 输出 对于每个测试用例,打印一行包含一个整数 - Chef 可以获得的最大利润,取模 1,000,000,007。

Constraints
1≤T≤25
1≤N≤105
0≤Pi≤109 for each valid i
The inputs are 
2 next line
3 next line
6 6 6 next line
3 next line
0 1 0 
Expected Output
15 next line
1

我尝试了您的代码中的输入,它似乎工作正常,您只是错过了这里所需的标头。矢量iostream算法,也许你的代码没有错,你只是在一个可能具有小内存限制的平台上运行。您需要专注于优化,但是如果您对所需的结果有问题,请提供代码背后的想法,输入示例,预期输出,当前输出以及T和N的范围。

检查 : https://stackoverflow.com/help/minimal-reproducible-example

最新更新