結果
| 問題 |
No.2673 A present from B
|
| コンテスト | |
| ユーザー |
t9unkubj
|
| 提出日時 | 2024-03-15 22:20:14 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,149 bytes |
| コンパイル時間 | 2,307 ms |
| コンパイル使用メモリ | 201,608 KB |
| 最終ジャッジ日時 | 2025-02-20 05:24:41 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 WA * 14 |
ソースコード
/**
* author: t9unkubj
* created: 2024-03-15
*/
#include<bits/stdc++.h>
#ifdef t9unkubj
#define _GLIBCXX_DEBUG
#define dbg(x) cout<<__LINE__<<" "<<#x<<":="<<x<<endl;
#else
#define dbg(x) t9unkubj
#endif
using namespace std;
//#include<atcoder/all>
//using namespace atcoder;
int main(){
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n,m;
cin>>n>>m;
vector<int>a(m);
for(int i=0;i<m;i++)cin>>a[i],a[i]--;
vector<vector<int>>togo(m+1,vector<int>(n));
vector<vector<int>>inv(m+1,vector<int>(n));
vector<vector<int>>origin(m+1,vector<int>(n));
vector<vector<int>>inv2=origin;
iota(origin[0].begin(),origin[0].end(),0);
for(int i=0;i<m;i++){
origin[i+1]=origin[i];
swap(origin[i+1][a[i]],origin[i+1][a[i]+1]);
}
for(int i=0;i<=m;i++)for(int j=0;j<n;j++)inv2[i][origin[i][j]]=j;
iota(togo[m].begin(),togo[m].end(),0);
for(int i=m-1;i>=0;i--){
togo[i]=togo[i+1];
swap(togo[i][a[i]],togo[i][a[i]+1]);
}
for(int i=0;i<=m;i++)for(int j=0;j<n;j++)inv[i][togo[i][j]]=j;
for(int i=1;i<n;i++){
int ans=1e9;
for(int j=0;j<=m;j++){
ans=min(ans,abs(inv[j][0]-inv2[j][i]));
}
cout<<ans<<" ";
}
cout<<endl;
}
t9unkubj