結果

問題 No.3726 Flawless Flow
コンテスト
ユーザー Rumain831
提出日時 2026-09-19 17:35:28
言語 C++23(gcc16)
(gcc 16.1.0 + boost 1.92.0 + ACL)
コンパイル:
g++-16 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 960 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,278 ms
コンパイル使用メモリ 183,032 KB
実行使用メモリ 6,528 KB
最終ジャッジ日時 2026-09-19 17:35:40
合計ジャッジ時間 4,291 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge5_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 48 WA * 11
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
using ll = long long;

void Print(vector<vector<int>>& ans){
  int n=ans.size(), m=ans[0].size();
  for(int i=0; i<n; i++)for(int j=0; j<m; j++){
    cout << ans[i][j]+1 << (j==m-1?'\n':' ');
  }
  return;
}


int main(void){
  int n; cin >> n;
  vector<int> a(n), b(n), pos(n);
  for(auto&x:a) cin >> x, x--;
  for(int i=0; i<n; i++) cin >> b[i], b[i]--, pos[b[i]]=i;
  vector ans(n+1, vector<int>(n));
  for(int i=0; i<n; i++) ans[0][i]=a[i];
  for(int t=0; t<n; t++){
    ans[t+1]=ans[t];
    for(int j=0; j<n-1; j++){
      int d1=abs(j-pos[ans[t][j]]);
      int nd1=abs(j+1-pos[ans[t][j]]);
      int d2=abs(j+1-pos[ans[t][j+1]]);
      int nd2=abs(j-pos[ans[t][j+1]]);
      if(max(abs(d1), abs(d2))>max(abs(nd1), abs(nd2))){
        swap(ans[t+1][j], ans[t+1][j+1]); j++;
      }
    }
  }
  //Print(ans);
  if(ans[n]==b) Print(ans);
  else cout << -1 << endl;
  return 0; 
}
0