题解

new_user_2 2024-03-17 14:55:37

A. youngmagician爆肝抽卡手游 签到题,根据题意模拟每天youngmagician获取哪个角色即可,使用数组标记每个角色的获取情况。

#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
struct op {
    ll val;
    ll pos;
};
bool cmp(op l, op r) { return l.val > r.val; }
int main() {
    ll n, m;
    cin >> n >> m;
    vector<op> d[n + 1];
    for (ll x = 1; x <= n; x++) {
        for (ll y = 1; y <= m; y++) {
            op temp;
            cin >> temp.val;
            temp.pos = y;
            d[x].push_back(temp);
        }
    }
    for (ll x = 1; x <= n; x++) {
        sort(d[x].begin(), d[x].end(), cmp);
    }
    vector<ll> vis(m + 1);
    for (ll x = 1; x <= n; x++) {
        ll cmp = 0;
        while (vis[d[x][cmp].pos]) {
            cmp++;
        }
        vis[d[x][cmp].pos] = 1;
    }
    for (ll x = 1; x <= m; x++) {
        cout << vis[x] << " ";
    }
    cout << "\n";

    return 0;