#include <bits/stdc++.h>
#include "longesttrip.h"
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll inf = 1e18;
vector<int> s;
vector<int> used;
int n;
int endik = -1;
/*
bool are_connected(vector<int> a, vector<int> b) {
    cout << a[0] << ' ' << b[0] << endl;
    int x;
    cin >> x;
    return (x == 1);
}
 */
void dfs(int v) {
    s.push_back(v);
    used[v] = 1;
    bool ok = 0;
    for (int i = 0; i < n; i++) {
        if (used[i]) {
            continue;
        }
        if (are_connected({v}, {i})) {
            dfs(i);
            ok = 1;
            break;
        }
    }
    if (!ok) {
        endik = v;
    }
}
vector<int> longest_trip(int N, int d) {
    n = N;
    used.assign(n, 0);
    dfs(0);
    s.clear();
    used.assign(n, 0);
    dfs(endik);
    return s;
}
/*
signed main() {
    int N, D;
    cin >> N >> D;
    auto res = longest_trip(N, D);
    for (auto el : res) {
        cout << el << ' ';
    }
    cout << endl;
}
*/
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |