#include<bits/stdc++.h>
#include "longesttrip.h"
using namespace std;
int n,d;
vector<int> l,r;
bool query(vector<int> a,vector<int> b){
    return are_connected(a,b);
}
vector<int> longest_trip(int N, int D){
    n=N; d=D;
    l.clear(); r.clear();
    l.push_back(0);
    if(query({0},{1})){
        l.push_back(1);
    }else{
        r.push_back(1);
    }
    for(int i=2;i<n;i++){
        if(query({l.back()},{i})){
            l.push_back(i);
            if(!r.empty() and query({r.back()},{i})){
                while(!r.empty()){
                    l.push_back(r.back());
                    r.pop_back();
                }
            }
        }else{
            r.push_back(i);
        }
    }
    if(d==1){
        if(l.size()>r.size())return l;
        else return r;
    }else{
        for(int i:r)l.push_back(i);
        return l;
    }
    return {};
}
| # | 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... |