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)) << " \n"[i == n - 1];
    }
}

int main() {
    int t; cin >> t;
    while (t--) solve();
}

 

posted @ 2020-07-06 22:21  Kanoon  阅读(210)  评论(0)    收藏  举报