Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- char c;
- vector<set<int>> g;
- deque<int> q;
- int main() {
- freopen("fullham.in", "r", stdin);
- freopen("fullham.out", "w", stdout);
- cin >> n;
- g.resize(n + 1);
- for (int i = 1; i < n + 1; ++i) {
- for (int j = 1; j < i; ++j) {
- cin >> c;
- if (c == '1') {
- g[i].insert(j);
- g[j].insert(i);
- }
- }
- }
- for (int i = 0; i < n; ++i) {
- q.push_back(i + 1);
- }
- for (int k = 0; k < n * (n - 1) + 1; ++k) {
- if (g[q.front()].find(q[1]) == g[q.front()].end()) {
- int i = 2;
- while (g[q.front()].find(q[i]) == g[q.front()].end() ||
- g[q[1]].find(q[i + 1]) == g[q[1]].end()) {
- ++i;
- }
- reverse(&q[1], &q[i + 1]);
- }
- q.push_back(q.front());
- q.pop_front();
- }
- for (auto an : q) {
- cout << an << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement