提出 #16723161


ソースコード 拡げる

#ifndef Local
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC target("sse4,sse4.2,popcnt,abm,mmx,avx")
#endif
#include <bits/stdc++.h>

using namespace std;

#define popCnt(x) (__builtin_popcountll(x))
#define sz(x) ((int)(x.size()))
#define all(v) begin(v), end(v)
#define rall(v) rbegin(v), rend(v)
typedef long long Long;
typedef double Double;

template <class U, class V>
istream& operator>>(istream& is, pair<U, V>& p) {
  is >> p.first >> p.second;
  return is;
}
template <class T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& x : v) {
    is >> x;
  }
  return is;
}

template <class T>
ostream& operator<<(ostream& os, vector<T>& v) {
  for (auto& x : v) {
    os << x << " ";
  }
  return os;
}

vector<int> a, b, res;

int n;
const int N = 2e5 + 5;
int cnt_a[N], cnt_b[N];

const int RANDOM =
    chrono::high_resolution_clock::now().time_since_epoch().count();
mt19937 rng(RANDOM);

bool validate() {
  bool valid = true;
  for (int i = 0; i < n; ++i) {
    valid &= (a[i] != res[i]);
  }
  return valid;
}

bool solve() {
  res = b;
  for (int t = 0; t < 20; ++t) {
    rotate(begin(res), begin(res) + rng() % n, end(res));
    if (validate()) return true;
  }
  res = b;
  reverse(all(res));
  for (int t = 0; t < 20; ++t) {
    if (validate()) return true;
    shuffle(all(res), rng);
  }
  return false;
}

int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#ifdef Local
  freopen("test.in", "r", stdin);
#else
#define endl '\n'
#endif
  cin >> n;
  a.resize(n), b.resize(n), res.resize(n);
  cin >> a >> b;
  for (int x : b) ++cnt_b[x];
  for (int x : a) {
    ++cnt_a[x];
    if (cnt_b[x] + cnt_a[x] > n) {
      cout << "No" << endl;
      return 0;
    }
  }
  if (solve()) {
    cout << "Yes" << endl;
    cout << res << endl;
    return 0;
  }

  cout << "No" << endl;
  return 0;
}

提出情報

提出日時
問題 F - Contrast
ユーザ Mohammad_Yasser
言語 C++ (GCC 9.2.1)
得点 600
コード長 1951 Byte
結果 AC
実行時間 67 ms
メモリ 7268 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果 AC
AC × 50
セット名 テストケース
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 5 ms 3576 KiB
case04 AC 2 ms 3540 KiB
case05 AC 2 ms 3616 KiB
case06 AC 2 ms 3540 KiB
case07 AC 2 ms 3632 KiB
case08 AC 2 ms 3488 KiB
case09 AC 3 ms 3628 KiB
case10 AC 2 ms 3540 KiB
case11 AC 3 ms 3488 KiB
case12 AC 44 ms 5452 KiB
case13 AC 26 ms 5576 KiB
case14 AC 31 ms 6360 KiB
case15 AC 65 ms 5548 KiB
case16 AC 67 ms 5484 KiB
case17 AC 47 ms 5516 KiB
case18 AC 48 ms 5520 KiB
case19 AC 46 ms 5500 KiB
case20 AC 46 ms 5524 KiB
case21 AC 50 ms 5704 KiB
case22 AC 44 ms 6252 KiB
case23 AC 46 ms 6180 KiB
case24 AC 47 ms 5608 KiB
case25 AC 45 ms 5544 KiB
case26 AC 45 ms 7152 KiB
case27 AC 65 ms 5544 KiB
case28 AC 26 ms 5548 KiB
case29 AC 24 ms 5608 KiB
case30 AC 46 ms 5540 KiB
case31 AC 45 ms 5620 KiB
case32 AC 45 ms 5496 KiB
case33 AC 47 ms 5456 KiB
case34 AC 46 ms 5480 KiB
case35 AC 55 ms 7180 KiB
case36 AC 57 ms 7096 KiB
case37 AC 58 ms 7268 KiB
case38 AC 57 ms 7144 KiB
case39 AC 44 ms 5716 KiB
case40 AC 43 ms 5716 KiB
case41 AC 46 ms 5700 KiB
case42 AC 45 ms 5888 KiB
case43 AC 42 ms 5900 KiB
case44 AC 45 ms 5888 KiB
case45 AC 44 ms 5892 KiB
case46 AC 37 ms 5848 KiB
case47 AC 11 ms 3748 KiB
case48 AC 29 ms 5348 KiB
case49 AC 52 ms 7008 KiB
sample00 AC 6 ms 3596 KiB
sample01 AC 2 ms 3524 KiB
sample02 AC 2 ms 3488 KiB