제출 #762729

#제출 시각아이디문제언어결과실행 시간메모리
762729vjudge1즐거운 행로 (APIO20_fun)C++17
26 / 100
82 ms13828 KiB
#include<bits/stdc++.h>

using namespace std;
vector<int> graph[700];
set<int> s;
int u=-1;
int ma=0;
int hoursRequired(int X,int Y);
void dfs(int a,int p,int d){
   // cout<<a<<endl;
    if(d>ma){
        ma=d;
        u=a;
    }
    for(auto x:graph[a]){
        if(x==p) continue;
        if(s.count(x))
        dfs(x,a,d+1);
    }
}
vector<int> createFunTour(int N,int Q){
    queue<int> q;
    q.push(0);
    bool vis[N+5]={0};
    vis[0]=1;
    while(!q.empty()){
        int y=q.front();
        q.pop();
        for(int i=0;i<N;i++){
            if(!vis[i]&&hoursRequired(y,i)==1){
                q.push(i);
                vis[i]=1;
                graph[y].push_back(i);
                graph[i].push_back(y);
            }
        }
    }
    for(int i=0;i<N;i++){
        s.insert(i);
    }
    vector<int> ans;
    for(int i=0;i<N;i++){
       // cout<<"flag"<<" "<<i<<endl;
        dfs(*s.begin(),-1,0);
        ma=0;
        dfs(u,-1,0);
        ans.push_back(u);
        s.erase(s.find(u));
    }
    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...