제출 #1021231

#제출 시각아이디문제언어결과실행 시간메모리
1021231vjudge1Split the Attractions (IOI19_split)C++17
18 / 100
59 ms15052 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using vi = vector <int>;

const ll MAXN = 1E5+16;
bool vis[MAXN];
vll adj[MAXN];
vll ord;

void dfs (ll u) {
    if (vis[u]) return;
    vis[u] = true;
    ord.push_back(u);
    for (ll v : adj[u])
        dfs(v);
}

vi find_split (int n, int a, int b, int c, vi us, vi vs) {
    ll m = us.size();
    for (ll i = 0; i < m; i++) {
        adj[us[i]].push_back(vs[i]);
        adj[vs[i]].push_back(us[i]);
    }
    ll st = 0;
    for (ll u = 0; u < n; u++)
        if (adj[u].size() == 1) st = u;
    dfs(st);
    vi ans(n, -15);
    for (ll i = 0; i < a; i++) ans[ord[i]] = 1;
    for (ll i = a; i < a+b; i++) ans[ord[i]] = 2;
    for (ll i = a+b; i < n; i++) ans[ord[i]] = 3;
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...