Codeforces Round 857 (Div. 2) A. Likes

link

Code

// #include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <cmath>
#include <unordered_map>
#include <map>
#include <set>
#include <cctype>
#include <list>
#include <bitset>
#define dbg(x) cout << #x << " = " << x << "\n"
using namespace std;
#define cf int _o_o_;cin>>_o_o_;for (int Case = 1; Case <= _o_o_;Case++)
#define SZ(x) (int)(x.size())
inline void solve();
int main() {solve();return 0;}
// ios::sync_with_stdio(false), cin.tie(nullptr);
 
using ll = long long;
const int maxn = 2e5 + 10;

void ok();
inline void solve() {
    int t;
    cin >> t;
    while (t -- ) {
        ok();
    }
}

inline void ok() {
    int n;
    cin >> n;
    int likes = 0,dislikes = 0;
    for (int i = 0;i < n;i++) {
        int x;
        cin >> x;
        if (x > 0) likes++; // 点赞次数加一
        else dislikes++;    // 取消点赞次数加一
    }

    // 下面构造最多赞的答案

    for (int i = 1;i <= n;i++) {
        if (i <= likes) cout << i << " \n"[i == n]; // 一直点赞,点赞数递增。
        else cout << (2 * likes - i) << " \n"[i == n];    // 第一个满足这个的i大小为likes+1, 所以2 * likes - likes - 1 = likes - 1. 满足减小的要求。
    }
    
    // 下面构造最少赞的答案

    for (int i = 1;i <= n;i++) {
        if (i <= 2 * dislikes) cout << i % 2 << " \n"[i == n];  // 需要先点赞,再取消,所以有2*dislikes个这种的
        else cout << i - 2 * dislikes << " \n"[i == n]; // 后面全是点赞,点赞数递增。
    }
}
posted @   Uzhia  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示