제출 #1366316

#제출 시각아이디문제언어결과실행 시간메모리
1366316kahoulThe Collection Game (BOI21_swaps)C++20
12 / 100
37 ms680 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]++;
            out[i]++;
        } else {
            in[i]++;
            out[j]++;
        }
    }
}

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);
    }

    vector<pii> pos;

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

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

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