#include #include #include #include using std::cin; using std::cout; const char endl = '\n'; const int N = 2e5 + 5; int n, a[N], b[N]; std::vector v1, v2; int main() { std::ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= n; i++) { cin >> b[i]; } std::sort(a + 1, a + 1 + n, std::less<>()); std::sort(b + 1, b + 1 + n, std::greater<>()); for (int i = 1; i <= n; i++) { if (a[i] == b[i]) v1.emplace_back(i); } if (v1.empty()) { cout << "Yes" << endl; for (int i = 1; i <= n; i++) { cout << b[i] << ' '; } cout << endl; exit(0); } for (int i = 1; i <= n; i++) { if (a[i] == a[v1[0]]) v2.emplace_back(i); else if (b[i] == a[v1[0]]) v2.emplace_back(i); } std::sort(v2.begin(), v2.end()); int l = v2[0] - 1; int r = *v2.rbegin() + 1; for (int p : v1) { if (l) { std::swap(b[l--], b[p]); } else if (r <= n) { std::swap(b[r++], b[p]); } else { cout << "No" << endl; exit(0); } } cout << "Yes" << endl; for (int i = 1; i <= n; i++) { cout << b[i] << ' '; } cout << endl; return 0; }