제출 #287763

#제출 시각아이디문제언어결과실행 시간메모리
287763Haunted_CppSplit the Attractions (IOI19_split)C++17
0 / 100
77 ms9332 KiB
#include "split.h"
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 1e5 + 5;

bool vis[MAX_N];

vector<vector<int>> g(MAX_N);

vector<int> euler;
vector<int> ans;

void dfs(int node) {
  vis[node] = true;
  euler.emplace_back(node);
  for (auto to : g[node]) {
    if (!vis[to]) {
      vis[to] = true;
      dfs(to);
    }
  }
}

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
  vector<int> in(n);
  ans = vector<int>(n, -1);
  const int m = p.size();
  assert(m <= n);
  memset(vis, false, sizeof(vis));
  for (int i = 0; i < m; i++) {
    int st = p[i];
    int et = q[i];
    g[st].emplace_back(et);
    g[et].emplace_back(st);
  }
  dfs(3);
  vector<int> res(n);
  for (auto to : euler) {
    if (a) {
      res[to] = 1;
      --a;
    } else if (b) {
      res[to] = 2;
      --b;
    } else {
      res[to] = 3;
    }
  }
	return res;
}
#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...