Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35882 | LYLAKIOI | 【BJ】T1 | C++ | 解答错误 | 0 | 102 MS | 18080 KB | 1286 | 2025-01-08 14:14:37 |
#include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define pi pair<int,int> #define p1 first #define p2 second #define p_b push_back #define m_p make_pair using namespace std; typedef long long ll; const int maxn=3e5+10,mod=998244353; inline ll read(){ ll x=0;short t=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; } int n,a[maxn],vis[maxn]; vector<pi>E[maxn]; vector<int>ans; void dfs(int u,int fa){ while(!E[u].empty()){ auto it=E[u].back();E[u].pop_back(); if(vis[it.p2])continue; vis[it.p2]=1;dfs(it.p1,it.p2); } if(fa)ans.p_b(fa); } void slv(){ n=read();up(i,1,n*4)a[i]=read(); up(i,1,2*n)E[a[4*n+1-i]].p_b(m_p(a[i],i)),E[a[i]].p_b(m_p(a[4*n+1-i],i)); up(i,1,2*n)dfs(i,0); reverse(ans.begin(),ans.end()); vector<int>P;int sz=ans.size(); for(int i=0;i<sz;i+=2)P.p_b(ans[i]),P.p_b(4*n+1-ans[i]); sort(P.begin(),P.end()); for(int x:P)printf("%d ",x); } int main(){ //freopen("gem.in","r",stdin); //freopen("gem.out","w",stdout); slv(); fclose(stdin); fclose(stdout); return 0; }