Submission #1000505

#TimeUsernameProblemLanguageResultExecution timeMemory
1000505MardonbekhazratovLongest Trip (IOI23_longesttrip)C++17
5 / 100
2109 ms1080 KiB
#include "longesttrip.h" #include<bits/stdc++.h> using namespace std; using namespace std; vector<int>sub1(int n){ vector<int>ans; for(int i=0;i<n;i++) ans.push_back(i); return ans; } int n; vector<vector<int>>v; vector<int>dp,a,vis; void dfs(int x){ int s=x; vis[x]=1; for(int z:v[x]){ if(vis[z]!=1){ if(vis[z]==0) dfs(z); if(dp[z]+1>dp[x] && dp[z]>0) s=z,dp[x]=dp[z]+1; } } vis[x]=2; a[x]=s; } vector<int>f(int x,int y){ dp.assign(n,0); a.resize(n); vis.assign(n,0); dp[y]=1; dfs(x); vector<int>ans; if(dp[x]==0) return ans; while(x!=y){ ans.push_back(x); x=a[x]; } ans.push_back(y); return ans; } vector<int> longest_trip(int N, int D){ if(D==3) return sub1(N); n=N; v.assign(N,vector<int>(0)); for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ if(are_connected({i},{j})){ v[i].push_back(j); v[j].push_back(i); } } } vector<int>ans; for(int i=0;i<N;i++){ for(int j=i+1;j<N;j++){ vector<int>b=f(i,j); if(b.size()>ans.size()) swap(b,ans); } } 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...