Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
134793 周震东 K 次取反后最大化的数组和 C++ 解答错误 66 0 MS 248 KB 841 2024-03-02 18:33:50

Tests(2/3):


#include <bits/stdc++.h> using namespace std; int a[111111]; int main() { int n , k , sum = 0 , cnt = 0; cin >> n >> k; for(int i = 1 ; i <= n ; i++) { cin >> a[i]; if(a[i] < 0) { cnt++; } } sort(a + 1, a + n + 1); if(k >= cnt) { for(int i = 1 ; i <= n ; i++) { if(a[i] < 0)abs(a[i]); } } else { for(int i = 1 ; i <= k ; i++) { if(a[i] < 0)abs(a[i]); } } sort(a + 1, a + n + 1); if(k > 0) { if(k % 2 == 0) { for(int i = 1 ; i <= n ; i++) { sum += a[i]; } cout << sum; return 0; } else if(k % 2 != 0) { sort(a + 1, a + n + 1); a[1] -= (a[1] * 2); for(int i = 1 ; i <= n ; i++) { sum += a[i]; } cout << sum; return 0; } } else { for(int i = 1 ; i <= n ; i++) { sum += a[i]; } cout << sum; } return 0; }


测评信息: