From 6898038319dac8d2a50cbaa7e14bee6d5505e085 Mon Sep 17 00:00:00 2001 From: shogo314 <80336945+shogo314@users.noreply.github.com> Date: Mon, 25 Nov 2024 00:42:28 +0900 Subject: [PATCH] add: functional-graph test --- test/atcoder-abc228-b.test.cpp | 13 +++++++++++++ test/atcoder-abc256-d.test.cpp | 22 ++++++++++++++++++++++ test/atcoder-abc367-e.test.cpp | 23 +++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 test/atcoder-abc228-b.test.cpp create mode 100644 test/atcoder-abc256-d.test.cpp create mode 100644 test/atcoder-abc367-e.test.cpp diff --git a/test/atcoder-abc228-b.test.cpp b/test/atcoder-abc228-b.test.cpp new file mode 100644 index 0000000..b33597f --- /dev/null +++ b/test/atcoder-abc228-b.test.cpp @@ -0,0 +1,13 @@ +#define PROBLEM "https://atcoder.jp/contests/abc228/tasks/abc228_b" + +#include + +#include "../cpp/functional-graph.hpp" + +int main(void) { + int N, X; + std::cin >> N >> X; + FunctionalGraph fg(N); + fg.read(); + std::cout << fg.hopable(X - 1) << std::endl; +} diff --git a/test/atcoder-abc256-d.test.cpp b/test/atcoder-abc256-d.test.cpp new file mode 100644 index 0000000..b6a1d37 --- /dev/null +++ b/test/atcoder-abc256-d.test.cpp @@ -0,0 +1,22 @@ +#define PROBLEM "https://atcoder.jp/contests/abc256/tasks/abc256_d" + +#include + +#include "../cpp/functional-graph.hpp" + +int main(void) { + int N; + std::cin >> N; + FunctionalGraph fg(N); + fg.read(); + std::vector C(N); + for (int& c : C) std::cin >> c; + long long ans = 0; + for (const auto& cycle : fg.cycle_list) { + int tmp = 1 << 30; + for (int u : cycle) + if (C[u] < tmp) tmp = C[u]; + ans += tmp; + } + std::cout << ans << std::endl; +} diff --git a/test/atcoder-abc367-e.test.cpp b/test/atcoder-abc367-e.test.cpp new file mode 100644 index 0000000..a121400 --- /dev/null +++ b/test/atcoder-abc367-e.test.cpp @@ -0,0 +1,23 @@ +#define PROBLEM "https://atcoder.jp/contests/abc367/tasks/abc367_e" + +#include + +#include "../cpp/functional-graph.hpp" + +int main(void) { + int N; + long long K; + std::cin >> N >> K; + FunctionalGraph fg(N); + fg.read(); + std::vector A(N); + for (int& a : A) std::cin >> a; + for (int i = 0; i < N; i++) { + std::cout << A[fg.hop(i, K)]; + if (i == N - 1) { + std::cout << std::endl; + } else { + std::cout << ' '; + } + } +}