제출 #1280915

#제출 시각아이디문제언어결과실행 시간메모리
1280915avighna가장 긴 여행 (IOI23_longesttrip)C++20
5 / 100
397 ms3360 KiB
#include <bits/stdc++.h>

bool are_connected(std::vector<int> A, std::vector<int> B);

std::vector<int> longest_trip(int n, int d) {
  std::vector<std::set<int>> adj(n);
  auto add_edge = [&](int u, int v) {
    adj[u].insert(v);
    adj[v].insert(u);
  };
  for (int i = 0; i < n; ++i) {
    std::vector<int> search;
    for (int j = i + 1; j < n; ++j) {
      if (are_connected({i}, {j})) {
        add_edge(i, j);
      }
    }
  }

  std::deque<int> ans;
  ans.push_back(0);
  std::vector<bool> vis(n);
  vis[0] = true;
  while (true) {
    bool changed = false;
    for (int i : adj[ans.front()]) {
      if (vis[i]) {
        continue;
      }
      vis[i] = true;
      ans.push_front(i);
      changed = true;
    }
    for (int i : adj[ans.back()]) {
      if (vis[i]) {
        continue;
      }
      vis[i] = true;
      ans.push_back(i);
      changed = true;
    }
    if (!changed) {
      break;
    }
  }

  return std::vector<int>(ans.begin(), ans.end());
}
#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...