QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#259417 | #5088. Two Choreographies | NYCU_CartesianTree# | WA | 1ms | 6064kb | C++20 | 1.4kb | 2023-11-20 21:49:42 | 2023-11-20 21:49:43 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define pb push_back
#define int long long
vector<int>node[100005];
bool vis[100005];
vector<int>now;
map<int,vector<int>>ans;
vector<int>t1,t2;
int tot=0;
void dfs(int v,int pre,int dd){
vis[v]=1;
now.pb(v);
tot++;
for(int ii:node[v]){
if(!vis[ii]){
dfs(ii,v,dd+1);
}
else{
if(ans.count(dd)){
t1=ans[dd];
t2=now;
vector<int>t3=t2;
reverse(t3.begin()+1,t3.end());
if(t3==t1||t1==t2) {
t1.clear(),t2.clear();
continue;
}
return;
}
else ans[dd]=now;
}
if(t1.size()) return;
}
now.pop_back();
vis[v]=0;
}
void solve(){
int n;
cin>>n;
for(int i=1;i<=n*2-3;i++){
int g,h;
cin>>g>>h;
node[g].pb(h);
node[h].pb(g);
}
for(int i=1;i<=n;i++){
dfs(i,i,0);
if(t1.size()){
cout<<t1.size()<<"\n";
for(int ii:t1) cout<<ii<<" ";cout<<"\n";
for(int ii:t2) cout<<ii<<" ";cout<<"\n";
return;
}
ans.clear();
}
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 6064kb
input:
4 1 2 1 3 1 4 2 3 2 4
output:
3 1 2 3 1 2 4
result:
ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 5940kb
input:
5 1 2 1 3 1 4 1 5 2 3 2 5 3 4
output:
3 1 2 3 1 2 5
result:
ok
Test #3:
score: 0
Accepted
time: 1ms
memory: 6016kb
input:
7 1 2 3 4 5 6 5 2 3 1 6 1 4 2 4 5 2 6 3 6 1 5
output:
5 1 2 5 6 3 1 2 5 4 3
result:
ok
Test #4:
score: -100
Wrong Answer
time: 1ms
memory: 6060kb
input:
40 1 16 1 40 2 4 2 16 2 36 3 25 3 38 4 1 4 13 5 11 5 27 6 4 7 5 7 11 8 10 8 14 8 24 9 34 10 20 12 35 13 2 14 10 14 20 15 18 15 28 15 31 16 6 16 13 17 5 17 11 17 27 18 9 19 1 19 4 19 16 20 24 21 12 21 33 21 35 22 38 23 12 23 21 25 28 25 31 25 34 25 38 26 14 26 20 27 7 27 11 28 3 28 31 29 16 29 19 30 ...
output:
5 1 16 2 4 13 1 16 2 4 6
result:
wrong answer Wrong output - Nonexisting edge.