Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111314 | 凌艺樽 | K 次取反后最大化的数组和 | C++ | 通过 | 100 | 0 MS | 260 KB | 533 | 2023-11-19 20:12:09 |
#include <bits/stdc++.h> using namespace std; const int N=1e7+10; const int INF=0x3f3f3f3f; int n,k,a[N]; int main() { cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; } while(k--) { int minn=INF,node=0; for(int i=1;i<=n;i++) { if(a[i]<minn) { node=i; } minn=min(a[i],minn); } if(a[node]>0) { a[node]=-a[node]; } else if(a[node]<0) { a[node]=abs(a[node]); } } long long ans=0; for(int i=1;i<=n;i++) { ans+=a[i]; } cout<<ans; return 0; }