Submission #47249750
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/modint>
namespace {
using ModInt [[maybe_unused]] = atcoder::modint998244353;
using Num [[maybe_unused]] = long long int;
using Vec [[maybe_unused]] = std::vector<Num>;
using Set [[maybe_unused]] = std::set<Num>;
using Mset [[maybe_unused]] = std::multiset<Num>;
using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;
template<typename T>
using Q [[maybe_unused]] = std::queue<T>;
template<typename T>
using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
}
void solve(std::istream& is, std::ostream& os) {
Num n, m;
is >> n >> m;
Vec aset(m, 0);
for(auto&& x : aset) {
is >> x;
--x;
}
Vec bset(m, 0);
for(auto&& x : bset) {
is >> x;
--x;
}
Edges edges(n);
for(Num i{0}; i<m; ++i) {
const auto a = aset.at(i);
const auto b = bset.at(i);
if (a == b) {
os << "No\n";
return;
}
edges[a].push_back(b);
edges[b].push_back(a);
}
Vec colors(n, -1);
for(Num i{0}; i<n; ++i) {
if (colors.at(i) >= 0) {
continue;
}
Q<std::pair<Num, Num>> q;
q.push(std::make_pair(i, 0));
colors.at(i) = 0;
while(!q.empty()) {
const auto [from, color] = q.front();
q.pop();
const auto next_color = 1 - color;
for(const auto& next : edges[from]) {
const auto c = colors.at(next);
if (c < 0) {
colors.at(next) = next_color;
q.push(std::make_pair(next, next_color));
} else {
if (c != next_color) {
os << "No\n";
return;
}
}
}
}
}
os << "Yes\n";
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Good Tuple Problem |
| User | zettsut |
| Language | C++ 20 (gcc 12.2) |
| Score | 400 |
| Code Size | 2045 Byte |
| Status | AC |
| Exec Time | 112 ms |
| Memory | 20568 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_1_00.txt, 01_random_1_01.txt, 01_random_1_02.txt, 01_random_1_03.txt, 01_random_1_04.txt, 02_random_2_00.txt, 02_random_2_01.txt, 02_random_2_02.txt, 02_random_2_03.txt, 02_random_2_04.txt, 02_random_2_05.txt, 02_random_2_06.txt, 02_random_2_07.txt, 02_random_2_08.txt, 02_random_2_09.txt, 03_tree_00.txt, 04_path_00.txt, 05_corner_00.txt, 05_corner_01.txt, 05_corner_02.txt, 05_corner_03.txt, 05_corner_04.txt, 05_corner_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3684 KiB |
| 00_sample_01.txt | AC | 1 ms | 3684 KiB |
| 00_sample_02.txt | AC | 1 ms | 3480 KiB |
| 00_sample_03.txt | AC | 1 ms | 3480 KiB |
| 01_random_1_00.txt | AC | 13 ms | 6096 KiB |
| 01_random_1_01.txt | AC | 14 ms | 7676 KiB |
| 01_random_1_02.txt | AC | 16 ms | 7132 KiB |
| 01_random_1_03.txt | AC | 24 ms | 9928 KiB |
| 01_random_1_04.txt | AC | 31 ms | 6104 KiB |
| 02_random_2_00.txt | AC | 25 ms | 7392 KiB |
| 02_random_2_01.txt | AC | 33 ms | 9424 KiB |
| 02_random_2_02.txt | AC | 24 ms | 7460 KiB |
| 02_random_2_03.txt | AC | 30 ms | 8168 KiB |
| 02_random_2_04.txt | AC | 29 ms | 7192 KiB |
| 02_random_2_05.txt | AC | 23 ms | 5488 KiB |
| 02_random_2_06.txt | AC | 31 ms | 9532 KiB |
| 02_random_2_07.txt | AC | 42 ms | 10196 KiB |
| 02_random_2_08.txt | AC | 29 ms | 8952 KiB |
| 02_random_2_09.txt | AC | 43 ms | 10400 KiB |
| 03_tree_00.txt | AC | 105 ms | 20568 KiB |
| 04_path_00.txt | AC | 82 ms | 18640 KiB |
| 05_corner_00.txt | AC | 1 ms | 3456 KiB |
| 05_corner_01.txt | AC | 34 ms | 6336 KiB |
| 05_corner_02.txt | AC | 38 ms | 9668 KiB |
| 05_corner_03.txt | AC | 38 ms | 9664 KiB |
| 05_corner_04.txt | AC | 80 ms | 18804 KiB |
| 05_corner_05.txt | AC | 112 ms | 18804 KiB |