1 条题解
-
0
给定一个长度为 的序列 ,输出执行以下操作 次后的序列 :
- 找到序列元素的最大值 ,将每个 变为 ;
,。
手动模拟一下就能发现, 是奇数时 ,偶数时 , 是最小值。
CODE
#include <bits/stdc++.h> using namespace std; #define int long long inline int read() { int x = 0, f = 0; char c = 0; while (!isdigit(c)) f |= c == '-', c = getchar(); while (isdigit(c)) x = (x << 3) + (x << 1) + (c & 15), c = getchar(); return f ? -x : x; } #define INF (1e9 + 7) int a[200010]; signed main() { for (int T = read(); T --;) { int n = read(), k = read(), Mx = -INF, Mn = INF; for (int i = 1; i <= n; i ++) { a[i] = read(); Mx = max(Mx, a[i]); Mn = min(Mn, a[i]); } if (k & 1) { for (int i = 1; i <= n; i ++) { printf("%lld ", Mx - a[i]); } } else { for (int i = 1; i <= n; i ++) { printf("%lld ", a[i] - Mn); } } puts(""); } return 0; }
- 1
信息
- ID
- 805
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者