#include "longesttrip.h"
#include <vector>
#include <deque>
using namespace std;
vector<int> longest_trip(int N, int D)
{
vector<int> ans;
if (D == 3)
{
for (int i = 0; i < N; i++)
{
ans.push_back(i);
}
return ans;
}
if (D == 2)
{
deque<int> d;
int sksel = 0;
if (are_connected({ 0 }, { 1 }))
{
d.push_back(0);
d.push_back(1);
sksel = 2;
}
else
{
d.push_back(0);
d.push_back(2);
d.push_back(1);
sksel = 3;
}
for (int i = sksel; i < N; i++)
{
if (are_connected({ i }, { d.back() }))
{
d.push_back(i);
}
else
{
d.push_front(i);
}
}
while(!d.empty())
{
ans.push_back(d.back());
d.pop_back();
}
return ans;
}
vector<int> a = { 0 }, b = {1};
for (int i = 2; i < N; i++)
{
if (are_connected({ a.back() }, { i }))
{
a.push_back(i);
}
else if (are_connected({ b.back() }, {i}))
{
b.push_back(i);
}
else
{
for (int j = b.size() - 1; j >= 0; j--)
{
a.push_back(b[j]);
}
b.clear();
b.push_back(i);
}
}
if (a.size() > b.size())
return a;
return b;
}
# | 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... |