Submission #1279817

#TimeUsernameProblemLanguageResultExecution timeMemory
1279817avighnaStray Cat (JOI20_stray)C++20
15 / 100
36 ms14024 KiB
#include "Anthony.h"
#include <queue>
#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, -1);
  std::vector<std::vector<int>> adj(N);
  for (int i = 0; i < M; ++i) {
    adj[U[i]].push_back(V[i]);
    adj[V[i]].push_back(U[i]);
  }
  std::vector<bool> vis(N);
  std::vector<int> dep(N);
  std::queue<int> q;
  q.push(0);
  vis[0] = true;
  while (!q.empty()) {
    int u = q.front();
    q.pop();
    for (int &i : adj[u]) {
      if (vis[i]) {
        continue;
      }
      vis[i] = true;
      dep[i] = dep[u] + 1;
      q.push(i);
    }
  }
  for (int i = 0; i < M; ++i) {
    x[i] = std::min(dep[U[i]], dep[V[i]]) % 3;
  }
  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...