제출 #1366342

#제출 시각아이디문제언어결과실행 시간메모리
1366342kahoulThe Collection Game (BOI21_swaps)C++20
0 / 100
0 ms416 KiB
#include <bits/stdc++.h>
using namespace std;
#include "swaps.h"

const int maxn = 502;
bool pairs[maxn][maxn];
int in[maxn];
int out[maxn];

typedef pair<int, int> pii;

void make_visit (vector<pii> schedules) {
    for (auto [u, v] : schedules) {
        schedule(u, v);
    }
    vector<int> ans = visit();
    for (int k = 0; k < schedules.size(); k++) {
        auto [i, j] = schedules[k];
        if (ans[k]) in[j]++;
        else in[i]++;
    }
}

void solve (int n, int v) {
    while (true) {
        vector<bool> busy(n + 2, 0);
        vector<pii> schedules;
        for (int j = 1; j <= n; j++) {
            if (busy[j]) continue;
            for (int k = j + 1; k <= n; k++) {
                if (busy[k]) continue;
                if (pairs[j][k] == 0) {
                    schedules.push_back({j, k});
                    pairs[j][k] = 1;
                    pairs[k][j] = 1;
                    busy[j] = 1;
                    busy[k] = 1;
                    break;
                }
            }
        }
        if (schedules.size() == 0) break;
        make_visit(schedules);
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cout << pairs[i][j];
        }
        cout << '\n';
    }

    vector<pii> pos;

    for (int i = 0; i < n; i++) {
        pos.push_back({in[i + 1], i + 1});
    }

    sort(pos.begin(), pos.end());

    vector<int> ans;
    for (int i = 0; i < n; i++) ans.push_back(pos[i].second);
    answer(ans);
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…