Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- vector<vector<int>> readArray () {
- int n;
- cin >> n;
- vector<vector<int>> array (n, vector<int> (n, 0));
- for (int i = 0; i != n; ++i) {
- for (int j = 0; j != n; ++j) {
- cin >> array[j][i];
- }
- }
- return array;
- }
- void writeArray (const vector<vector<int>>& array) {
- for (int i = 0; i != array.size(); ++i) {
- for (int j = 0; j != array.size(); ++j) {
- cout << array[j][i] << ' ';
- }
- cout << '\n';
- }
- }
- void dfs (int n, vector<vector<int>>& array) {
- vector<bool> visited (n, false);
- visited[n] = true;
- for (int i = 0; i != array.size(); ++i) {
- if (!visited[i]) {
- dfs(i, array);
- }
- }
- for (int i = 0; i != array.size(); ++i) {
- if (visited[i]) {
- array[n][i] = 1;
- array[i][n] = 1;
- }
- }
- }
- int main() {
- vector<vector<int>> graph = readArray();
- for (int i = 0; i != graph.size(); ++i) {
- dfs(i, graph);
- }
- writeArray(graph);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement