library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub matumoto1234/library

:x: graph/adjacency-list-to-edges.hpp

Depends on

Required by

Verified with

Code

#include "base.hpp"

#include <utility>
#include <vector>

namespace matumoto {
  vector<pair<int, int>> adjacency_list_to_edges(const vector<vector<int>> &adj_list) {
    vector<pair<int, int>> edges;
    for (int v = 0; v < (int)adj_list.size(); v++) {
      for (const auto &to: adj_list[v]) {
        edges.emplace_back(v, to);
      }
    }
    return edges;
  }

  template <typename Cost>
  vector<tuple<int, int, Cost>> adjacency_list_to_edges(const vector<vector<pair<Cost, int>>> &adj_list) {
    vector<tuple<int, int, Cost>> edges;
    for (int v = 0; v < (int)adj_list.size(); v++) {
      for (const auto &[cost, to]: adj_list[v]) {
        edges.emplace_back(v, to, cost);
      }
    }
    return edges;
  }
} // namespace matumoto
#line 2 "graph/base.hpp"

namespace matumoto {
  using namespace std;
}
#line 2 "graph/adjacency-list-to-edges.hpp"

#include <utility>
#include <vector>

namespace matumoto {
  vector<pair<int, int>> adjacency_list_to_edges(const vector<vector<int>> &adj_list) {
    vector<pair<int, int>> edges;
    for (int v = 0; v < (int)adj_list.size(); v++) {
      for (const auto &to: adj_list[v]) {
        edges.emplace_back(v, to);
      }
    }
    return edges;
  }

  template <typename Cost>
  vector<tuple<int, int, Cost>> adjacency_list_to_edges(const vector<vector<pair<Cost, int>>> &adj_list) {
    vector<tuple<int, int, Cost>> edges;
    for (int v = 0; v < (int)adj_list.size(); v++) {
      for (const auto &[cost, to]: adj_list[v]) {
        edges.emplace_back(v, to, cost);
      }
    }
    return edges;
  }
} // namespace matumoto
Back to top page