Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
35894 liuyile 【BJ】T1 C++ 通过 100 349 MS 62164 KB 958 2025-01-08 15:40:08

Tests(20/20):


#include<bits/stdc++.h> using namespace std; #define int long long int c[800300]; int n; struct edge{ int u,v,a,b; }; vector<int>g[400300]; edge E[400300]; bool vis[403000]; vector<int>S; inline void dfs(int u){ while(!g[u].empty()){ int i=g[u].back(); g[u].pop_back(); if(vis[i])continue; vis[i]=1; int v=E[i].u^E[i].v^u; dfs(v); S.push_back(i); } } signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); // freopen("gem1.in","r",stdin); // freopen("gem.out","w",stdout); cin>>n; for(int i=1;i<=4*n;i++){ cin>>c[i]; } for(int i=1;i<=2*n;i++){ E[i]={c[i],c[4*n-i+1],i,4*n-i+1}; g[c[i]].push_back(i); g[c[4*n-i+1]].push_back(i); } for(int i=1;i<=n;i++)dfs(i); for(int i=0;i<n;i++) cout<<E[S[2*i]].a<<" "<<E[S[2*i]].b<<" "; cout<<endl; return 0; }


测评信息: