#include "longesttrip.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> longest_trip(int N, int D){
vector<int> p;
vector<bool> in(N, false);
p.push_back(0);
in[0] = true;
bool rev = false;
while (true){
int cur = p.back();
for (int i=0; i<N; i++){
if (in[i]) continue;
if (are_connected({p.back()}, {i})){
p.push_back(i);
in[i] = true;
break;
}
}
if (cur == p.back()){
if (rev) break;
rev = true;
reverse(p.begin(), p.end());
}
}
for (int i=1; i<(int)p.size()-1; i++){
for (int j=0; j<N; j++){
if (in[j]) continue;
if (are_connected({p[i]}, {j})){
vector<int> np;
for (int ci=i+1; ci<p.size(); ci++) np.push_back(p[ci]);
for (int ci=0; ci<=i; ci++) np.push_back(p[ci]);
np.push_back(j);
in[j] = true;
for (int ci=0; ci<N; ci++){
if (!in[ci]) np.push_back(ci);
}
return np;
}
}
}
if (p.size() > N/2) return p;
vector<int> np;
for (int i=0; i<N; i++){
if (!in[i]) np.push_back(i);
}
return np;
}
# | 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... |