Submission #16726993
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int max_n = 2e5 + 5;
int n, co;
int seen[max_n];
int a[max_n], b[max_n];
int A[max_n], B[max_n];
int L[max_n], R[max_n];
int r() {
int x = (rand()%1000)*1000 + rand()%1000;
return x%n;
}
bool FindMatch(int i) {
for(int j = 0; j < 2000; j++) {
int foo = r();
if(a[i] != b[foo] && seen[foo] != co) {
seen[foo] = co;
if(R[foo] < 0 || FindMatch(R[foo])) {
L[i] = foo;
R[foo] = i;
return true;
}
}
}
return false;
}
int BipartiteMatching() {
memset(L, -1, sizeof L);
memset(R, -1, sizeof R);
for(int i=0; i<n; i++) {
if(a[i] != b[i]) {
L[i] = R[i] = i;
}
}
for(int i = 0; i < n; i++) {
if(L[i] == -1) {
co = i + n;
if(!FindMatch(i)) return 0;
}
}
return 1;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
srand(time(NULL));
cin >> n;
for(int i=0; i<n; i++) {
cin >> a[i];
A[a[i]]++;
}
for(int i=0; i<n; i++) {
cin >> b[i];
B[b[i]]++;
}
for(int i=1; i<max_n; i++) {
if(B[i] > n - A[i]) {
cout << "No" << endl;
return 0;
}
}
reverse(b, b+n);
if(BipartiteMatching()) {
cout << "Yes" << endl;
for(int i=0; i<n; i++) {
cout << b[L[i]] << " ";
}
}
else {
cout << "No" << endl;
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Contrast |
| User | anis |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 1364 Byte |
| Status | AC |
| Exec Time | 251 ms |
| Memory | 23436 KiB |
Judge Result
| Set Name | Sample | All | ||
|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||
| Status | AC |
|
| Set Name | Test Cases |
|---|---|
| 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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| case03 | AC | 8 ms | 3500 KiB |
| case04 | AC | 2 ms | 3532 KiB |
| case05 | AC | 2 ms | 3640 KiB |
| case06 | AC | 2 ms | 3516 KiB |
| case07 | AC | 5 ms | 5196 KiB |
| case08 | AC | 7 ms | 5060 KiB |
| case09 | AC | 2 ms | 3584 KiB |
| case10 | AC | 5 ms | 5072 KiB |
| case11 | AC | 5 ms | 5020 KiB |
| case12 | AC | 49 ms | 6712 KiB |
| case13 | AC | 27 ms | 5228 KiB |
| case14 | AC | 29 ms | 6628 KiB |
| case15 | AC | 46 ms | 6620 KiB |
| case16 | AC | 41 ms | 6712 KiB |
| case17 | AC | 213 ms | 16528 KiB |
| case18 | AC | 112 ms | 18932 KiB |
| case19 | AC | 89 ms | 16744 KiB |
| case20 | AC | 100 ms | 17956 KiB |
| case21 | AC | 111 ms | 22972 KiB |
| case22 | AC | 209 ms | 15016 KiB |
| case23 | AC | 211 ms | 18948 KiB |
| case24 | AC | 199 ms | 17132 KiB |
| case25 | AC | 187 ms | 12652 KiB |
| case26 | AC | 197 ms | 19100 KiB |
| case27 | AC | 46 ms | 6720 KiB |
| case28 | AC | 25 ms | 5068 KiB |
| case29 | AC | 25 ms | 5076 KiB |
| case30 | AC | 227 ms | 21968 KiB |
| case31 | AC | 43 ms | 6636 KiB |
| case32 | AC | 169 ms | 19100 KiB |
| case33 | AC | 56 ms | 13944 KiB |
| case34 | AC | 138 ms | 11100 KiB |
| case35 | AC | 56 ms | 8264 KiB |
| case36 | AC | 241 ms | 21464 KiB |
| case37 | AC | 198 ms | 16516 KiB |
| case38 | AC | 235 ms | 23436 KiB |
| case39 | AC | 251 ms | 22964 KiB |
| case40 | AC | 208 ms | 18688 KiB |
| case41 | AC | 248 ms | 20208 KiB |
| case42 | AC | 185 ms | 13068 KiB |
| case43 | AC | 204 ms | 15632 KiB |
| case44 | AC | 197 ms | 16612 KiB |
| case45 | AC | 187 ms | 16720 KiB |
| case46 | AC | 64 ms | 17224 KiB |
| case47 | AC | 10 ms | 5384 KiB |
| case48 | AC | 43 ms | 6744 KiB |
| case49 | AC | 73 ms | 19840 KiB |
| sample00 | AC | 8 ms | 5132 KiB |
| sample01 | AC | 3 ms | 3600 KiB |
| sample02 | AC | 4 ms | 5144 KiB |