제출 #1219262

#제출 시각아이디문제언어결과실행 시간메모리
1219262mariza가장 긴 여행 (IOI23_longesttrip)C++17
25 / 100
332 ms804 KiB
#include "longesttrip.h"
#include <bits/stdc++.h>
using namespace std;

typedef int ll;

vector<int> longest_trip(int n, int D){
    vector<ll> g[n];
    bool adj[n][n]={};
    for(ll i=0; i<n; i++){
        for(ll j=i+1; j<n; j++){
            if(are_connected({(int)i},{(int)j})){
                g[i].push_back(j);
                g[j].push_back(i);
                adj[i][j]=1;
                adj[j][i]=1;
            }
        }
    }

    for(ll i=0; i<n; i++){
        if(g[i].size()+1<=n/2){
            // cout<<"! "<<i<<endl;
            vector<int> ans((n+1)/2,0);
            ll c=0;
            for(ll j=0; j<n && c<(n+1)/2; j++){
                if(i!=j && !adj[i][j]){
                    ans[c]=j;
                    c++;
                }
                // n/2;
            }
            return ans;
        }
    }

    vector<int> ans((n+1)/2,0);
    ans[0]=0;
    bool vis[n]={};
    for(ll i=1; i<(n+1)/2; i++){
        ll curr=ans[i-1];
        vis[curr]=1;
        for(auto nxt:g[curr]){
            if(!vis[nxt]){
                ans[i]=nxt;
                break;
            }
        }
    }
    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...