제출 #1009084

#제출 시각아이디문제언어결과실행 시간메모리
1009084AbitoLongest Trip (IOI23_longesttrip)C++17
40 / 100
886 ms592 KiB
#include "longesttrip.h"
#include <bits/stdc++.h>
#define pb push_back
#define elif else if
using namespace std;
std::vector<int> longest_trip(int n, int D)
{
    vector<int> ans;
    vector<bool> vis(n);
    bool adj[n][n];
    for (int i=0;i<n;i++){
        for (int j=i+1;j<n;j++){
            vector<int> x,y;
            x.pb(i);y.pb(j);
            adj[i][j]=adj[j][i]=are_connected(x,y);
        }
    }
    for (int i=0;i<n;i++){
        if (vis[i]) continue;
        vector<int> v;
        v.pb(i);vis[i]=1;
        while (true){
            int L=-1,R=-1;
            for (int j=0;j<n;j++){
                if (vis[j]) continue;
                if (adj[v.back()][j]) R=j;
                if (adj[v[0]][j]) L=j;
            }
            if (R>-1) v.pb(R),vis[R]=1;
            elif(L>-1){
                reverse(v.begin(),v.end());
                v.pb(L);
                vis[L]=1;
            }
            else break;
        }
        if (v.size()>ans.size()) ans=v;
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...