a01sa01to's competitive programming library.
#include "library/_internal/graph-base.hpp"
#pragma once
#include <concepts>
#include <type_traits>
using namespace std;
namespace asalib {
namespace _internal {
class graph_base {};
class notweighted_graph_base: public graph_base {};
class weighted_graph_base: public graph_base {};
template<typename T>
concept is_graph = is_base_of_v<graph_base, T>;
template<typename T>
concept notweighted_graph = is_base_of_v<notweighted_graph_base, T>;
template<typename T>
concept weighted_graph = is_base_of_v<weighted_graph_base, T>;
using adjlist_t = vector<vector<pair<size_t, size_t>>>;
using edgelist_t = vector<pair<size_t, size_t>>;
} // namespace _internal
} // namespace asalib
#line 2 "library/_internal/graph-base.hpp"
#include <concepts>
#include <type_traits>
using namespace std;
namespace asalib {
namespace _internal {
class graph_base {};
class notweighted_graph_base: public graph_base {};
class weighted_graph_base: public graph_base {};
template<typename T>
concept is_graph = is_base_of_v<graph_base, T>;
template<typename T>
concept notweighted_graph = is_base_of_v<notweighted_graph_base, T>;
template<typename T>
concept weighted_graph = is_base_of_v<weighted_graph_base, T>;
using adjlist_t = vector<vector<pair<size_t, size_t>>>;
using edgelist_t = vector<pair<size_t, size_t>>;
} // namespace _internal
} // namespace asalib