제출 #1279681

#제출 시각아이디문제언어결과실행 시간메모리
1279681avighna길고양이 (JOI20_stray)C++20
4 / 100
36 ms13972 KiB
#include "Anthony.h"
#include <vector>

std::vector<int> Mark(int N, int M, int A, int B, std::vector<int> U, std::vector<int> V) {
  std::vector<int> x(M, 3);
  std::vector<std::vector<std::pair<int, int>>> adj(N);
  for (int i = 0; i < M; ++i) {
    adj[U[i]].push_back({V[i], i});
    adj[V[i]].push_back({U[i], i});
  }
  std::vector<bool> vis(N);
  std::vector<int> dep(N);
  auto dfs = [&](auto &&self, int u) -> void {
    vis[u] = true;
    for (auto [i, edge_idx] : adj[u]) {
      if (vis[i]) {
        continue;
      }
      dep[i] = dep[u] + 1;
      x[edge_idx] = dep[i] % 3;
      self(self, i);
    }
  };
  dfs(dfs, 0);
  return x;
}
#include "Catherine.h"
#include <algorithm>
#include <vector>

namespace {

int A, B;

} // namespace

void Init(int A, int B) {
  ::A = A;
  ::B = B;
}

int Move(std::vector<int> y) {
  std::vector<int> vals;
  for (int i = 0; i < 3; ++i) {
    for (int j = 0; j < y[i]; ++j) {
      vals.push_back(i);
    }
  }
  int max = *std::max_element(vals.begin(), vals.end());
  int min = *std::min_element(vals.begin(), vals.end());
  if (max - min <= 1) {
    return min;
  }
  return max;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...