ログインしてください。
提出 #16724213
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
int main(){
cin.tie(0)->sync_with_stdio(0);
cin.exceptions(ios::badbit | ios::failbit);
int n;
cin >> n;
vector<int> a(n), b(n);
vector<int> al(n + 1, -1), ar(n + 1, -1), bl(n + 1, -1), br(n + 1, -1);
for(auto i = 0; i < n; ++ i){
cin >> a[i];
}
for(auto i = 0; i < n; ++ i){
cin >> b[i];
}
int tot = 0;
vector<int> cnt(n + 1);
for(auto x = 1, ai = 0, bi = 0; x <= n; ++ x){
while(ai < n && a[ai] < x){
++ ai;
}
if(ai < n && a[ai] == x){
int aj = ai;
while(aj < n && a[aj] == x){
++ aj;
}
tie(al[x], ar[x]) = pair{ai, aj};
ai = aj;
}
while(bi < n && b[bi] < x){
++ bi;
}
if(bi < n && b[bi] == x){
int bj = bi;
while(bj < n && b[bj] == x){
++ bj;
}
tie(bl[x], br[x]) = pair{bi, bj};
bi = bj;
}
if(~al[x] && ~bl[x]){
++ tot;
if(ar[x] - al[x] + br[x] - bl[x] > n){
cout << "No\n";
return 0;
}
if(bl[x] <= al[x]){
if(br[x] <= al[x]){
++ cnt[0];
-- cnt[al[x] - br[x] + 1];
++ cnt[ar[x] - bl[x]];
-- cnt[n];
}
else{
++ cnt[ar[x] - bl[x]];
-- cnt[al[x] + n - br[x] + 1];
}
}
else{
++ cnt[max(0, ar[x] - bl[x])];
-- cnt[al[x] + n - br[x] + 1];
}
}
}
for(auto t = 0; t < n; ++ t){
if(cnt[t] == tot){
cout << "Yes\n";
rotate(b.begin(), b.begin() + n - t, b.end());
for(auto x: b){
cout << x << " ";
}
cout << "\n";
return 0;
}
cnt[t + 1] += cnt[t];
}
return 0;
}
/*
*/
////////////////////////////////////////////////////////////////////////////////////////
// //
// Coded by Aeren //
// //
////////////////////////////////////////////////////////////////////////////////////////
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Contrast |
| ユーザ | FlowerOfSorrow |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 600 |
| コード長 | 2041 Byte |
| 結果 | AC |
| 実行時間 | 55 ms |
| メモリ | 8756 KiB |
ジャッジ結果
| セット名 | Sample | All | ||
|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||
| 結果 | AC |
|
| セット名 | テストケース |
|---|---|
| Sample | |
| All | case03, case04, case05, case06, case07, case08, case09, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, case20, case21, case22, case23, case24, case25, case26, case27, case28, case29, case30, case31, case32, case33, case34, case35, case36, case37, case38, case39, case40, case41, case42, case43, case44, case45, case46, case47, case48, case49, sample00, sample01, sample02 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| case03 | AC | 4 ms | 3564 KiB |
| case04 | AC | 3 ms | 3444 KiB |
| case05 | AC | 3 ms | 3564 KiB |
| case06 | AC | 2 ms | 3568 KiB |
| case07 | AC | 2 ms | 3656 KiB |
| case08 | AC | 2 ms | 3500 KiB |
| case09 | AC | 2 ms | 3556 KiB |
| case10 | AC | 2 ms | 3620 KiB |
| case11 | AC | 2 ms | 3576 KiB |
| case12 | AC | 45 ms | 8720 KiB |
| case13 | AC | 33 ms | 8628 KiB |
| case14 | AC | 35 ms | 8728 KiB |
| case15 | AC | 39 ms | 8580 KiB |
| case16 | AC | 40 ms | 8524 KiB |
| case17 | AC | 45 ms | 8564 KiB |
| case18 | AC | 46 ms | 8644 KiB |
| case19 | AC | 47 ms | 8628 KiB |
| case20 | AC | 48 ms | 8628 KiB |
| case21 | AC | 50 ms | 8568 KiB |
| case22 | AC | 44 ms | 8580 KiB |
| case23 | AC | 44 ms | 8572 KiB |
| case24 | AC | 43 ms | 8584 KiB |
| case25 | AC | 40 ms | 8724 KiB |
| case26 | AC | 47 ms | 8716 KiB |
| case27 | AC | 44 ms | 8644 KiB |
| case28 | AC | 29 ms | 8524 KiB |
| case29 | AC | 26 ms | 8640 KiB |
| case30 | AC | 46 ms | 8700 KiB |
| case31 | AC | 38 ms | 8572 KiB |
| case32 | AC | 45 ms | 8580 KiB |
| case33 | AC | 38 ms | 8680 KiB |
| case34 | AC | 42 ms | 8724 KiB |
| case35 | AC | 53 ms | 8756 KiB |
| case36 | AC | 55 ms | 8716 KiB |
| case37 | AC | 53 ms | 8692 KiB |
| case38 | AC | 54 ms | 8636 KiB |
| case39 | AC | 45 ms | 8740 KiB |
| case40 | AC | 43 ms | 8716 KiB |
| case41 | AC | 46 ms | 8640 KiB |
| case42 | AC | 43 ms | 8688 KiB |
| case43 | AC | 43 ms | 8636 KiB |
| case44 | AC | 43 ms | 8728 KiB |
| case45 | AC | 44 ms | 8624 KiB |
| case46 | AC | 41 ms | 6912 KiB |
| case47 | AC | 12 ms | 3636 KiB |
| case48 | AC | 36 ms | 5952 KiB |
| case49 | AC | 52 ms | 8256 KiB |
| sample00 | AC | 6 ms | 3580 KiB |
| sample01 | AC | 2 ms | 3444 KiB |
| sample02 | AC | 2 ms | 3564 KiB |