結果
問題 |
No.2732 Similar Permutations
|
ユーザー |
![]() |
提出日時 | 2024-04-20 00:29:03 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 908 bytes |
コンパイル時間 | 2,444 ms |
コンパイル使用メモリ | 197,636 KB |
最終ジャッジ日時 | 2025-02-21 05:54:48 |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 82 WA * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; vector<int> a(n); int xr=0; vector<pair<int,int>> b(300000,{-1,0}); for(int i=0;i<n;i++){ cin>>a[i]; xr^=a[i]+i+1; } vector<int> p(n); for(int i=0;i<n;i++)p[i]=i; vector<int> st(300000,-1); int p1=-1,p2=-1,idx=0; do{ int x=0; for(int i=0;i<n;i++)x^=a[i]+p[i]+1; if(st[x]==-1)st[x]=idx; else{ p1=st[x]; p2=idx; break; } idx++; }while(next_permutation(p.begin(),p.end())); if(p1<0){ cout<<-1<<"\n"; return 0; } for(int i=0;i<n;i++)p[i]=i; for(int i=0;i<p2;i++){ if(i==p1){ for(int j=0;j<n;j++)cout<<p[j]+1<<" \n"[j+1==n]; } next_permutation(p.begin(),p.end()); } for(int i=0;i<n;i++)cout<<p[i]+1<<" \n"[i+1==n]; }