Task: | Distances |
Sender: | knightron0 |
Submission time: | 2021-01-30 17:36:53 +0200 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 29 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 29 |
#2 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2 | details |
#2 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
#include <bits/stdc++.h> using namespace std; #define pb push_back #define fr first #define sc second #define clr(a, x) memset(a, x, sizeof(a)) #define dbg(x) cout<<"("<<#x<<"): "<<x<<endl; #define printvector(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout<<*it<<" "; cout<<endl; #define all(v) v.begin(), v.end() #define lcm(a, b) (a * b)/__gcd(a, b) #define int long long int #define printvecpairs(vec) for(auto it: vec) cout<<it.fr<<' '<<it.sc<<endl; #define endl '\n' #define float long double const int MOD = 1e9 + 7; const int INF = 2e15; const int MAXN = 1e5 + 5; vector<int> adj[MAXN], poss[MAXN]; bool vis[MAXN]; void dfs(int s, int dist, int og){ if(dist > 3){ return; } vis[s] = true; poss[og].pb(s); for(auto it: adj[s]){ if(!vis[it]){ dfs(it, dist+1, og); } } } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); #ifdef LOCAL freopen("input.txt", "r", stdin); #endif int t; cin>>t; while(t--){ int n; cin>>n; for(int i= 0;i<=n+1;i++){ poss[i].clear(); adj[i].clear(); } for(int i= 0;i<n-1;i++){ int t1, t2; cin>>t1>>t2; adj[t1].pb(t2); adj[t2].pb(t1); } int a[n+2]; for(int i= 1;i<=n;i++){ clr(vis, 0); a[i] = i; dfs(i, 0, i); } do { bool ans = true; for(int i= 2;i<=n;i++){ bool flag = false; for(int j: poss[a[i-1]]){ if(j == a[i]) { flag = true; break; } } if(!flag){ ans = false; break; } } if(ans){ for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } cout<<endl; break; } } while(next_permutation(a+1, a+n+1)); } return 0; }
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 8 5 2 2 3 3 7 ... |
correct output |
---|
1 8 2 5 6 7 3 4 1 7 2 8 3 6 4 5 1 4 6 2 7 5 8 3 1 8 3 2 4 7 6 5 1 6 4 7 5 2 3 8 ... |
user output |
---|
1 3 2 4 7 5 6 8 1 3 2 8 7 5 4 6 1 3 2 5 7 8 6 4 1 2 3 4 5 6 7 8 1 3 2 4 6 8 7 5 ... Truncated |
Test 2
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 100 37 59 81 37 44 81 ... |
correct output |
---|
1 99 82 81 59 5 71 55 17 24 13... |
user output |
---|
(empty) |