Codeforces Global Round 9 A. Sign Flipping

题目链接:https://codeforces.com/contest/1375/problem/A

题意

给出一个大小为 $n$ 的数组 $a$,可以反转每个数的正负,要求:

  • 至少有 $frac{n - 1}{2}$ 对相邻的数满足 $a_{i+1} - a_i ge 0$
  • 至少有 $frac{n - 1}{2}$ 对相邻的数满足 $a_{i+1} - a_i le 0$

输出任一满足要求后的数组 $a$ 。

题解

使得数组中的元素正负相间即可。

代码

#include <bits/stdc++.h>
using namespace std;

void solve() {
    int n; cin >> n;
    for (int i = 0; i < n; i++) {
        int x; cin >> x;
        cout << (i & 1 ? abs(x) : -abs(x)) << " 
"[i == n - 1];
    }
}

int main() {
    int t; cin >> t;
    while (t--) solve();
}
原文地址:https://www.cnblogs.com/Kanoon/p/13257986.html