【发布时间】:2020-05-14 15:55:46
【问题描述】:
int main() {
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
int* ar1 = new int[n];
int* ar2 = new int[n];
/*int ar1[n];
int ar2[n];*/
for (int i = 0; i < n; i++) {
cin >> ar1[i];
}
for (int i = 0; i < n; i++) {
cin >> ar2[i];
}
sort(ar1, ar1 + n);
sort(ar2, ar2 + n, greater<int>());
int sum = 0;
for (int i = 0; i < n, k>0; i++) {
if (ar1[i] < ar2[i]) {
ar1[i] = ar2[i];
k--;
}
}
for (int i = 0; i < n; i++) {
sum += ar1[i];
}
cout << sum << "\n";
}
return 0;
}
code.exe 中 0x77B6EC75 (ntdll.dll) 处的未处理异常:0xC000000D:向服务或函数传递了无效参数。 每当第一次编译此代码时,它都能正常工作,但第二次抛出异常。我已在 codeforces 上提交此代码,并在正确打印所有结果后打印 9720301。
【问题讨论】:
-
阅读comma operator -
for (int i = 0; i < n, k>0; i++)没有按照您的想法行事。