Advertisement
pb_jiang

ARC136B

Nov 30th, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. // Problem: B - Triple Shift
  2. // Contest: AtCoder - AtCoder Regular Contest 136
  3. // URL: https://atcoder.jp/contests/arc136/tasks/arc136_b
  4. // Memory Limit: 1024 MB
  5. // Time Limit: 2000 ms
  6. //
  7. // Powered by CP Editor (https://cpeditor.org)
  8.  
  9. #include <assert.h>
  10. #include <bits/stdc++.h>
  11. using namespace std;
  12. #define dbg(...) logger(#__VA_ARGS__, __VA_ARGS__)
  13. template <typename... Args> void logger(string vars, Args &&... values)
  14. {
  15.     cerr << vars << " = ";
  16.     string delim = "";
  17.     (..., (cerr << delim << values, delim = ", "));
  18.     cerr << endl;
  19. }
  20.  
  21. template <class T> inline auto vv(int m) { return vector<vector<T>>(m, vector<T>(m)); }
  22. template <class T> inline auto vv(int m, int n) { return vector<vector<T>>(m, vector<T>(n)); }
  23. template <class T, T init> inline auto vv(int m) { return vector<vector<T>>(m, vector<T>(m, init)); }
  24. template <class T, T init> inline auto vv(int m, int n) { return vector<vector<T>>(m, vector<T>(n, init)); }
  25.  
  26. template <class T> using mpq = priority_queue<T, vector<T>, greater<T>>;
  27. using vi = vector<int>;
  28. using ll = long long;
  29. using pii = pair<int, int>;
  30.  
  31. int main(int argc, char **argv)
  32. {
  33.     int n;
  34.     cin >> n;
  35.     vi a(n), b(n);
  36.     map<int, int> ma, mb;
  37.     for (int i = 0; i < n; ++i)
  38.         cin >> a[i], ma[a[i]]++;
  39.     for (int i = 0; i < n; ++i)
  40.         cin >> b[i], mb[b[i]]++;
  41.     if (ma != mb) {
  42.         cout << "No" << endl;
  43.         return 0;
  44.     }
  45.     int inva = 0, invb = 0;
  46.     for (int i = 0; i < n; ++i)
  47.         for (int j = i + 1; j < n; ++j) {
  48.             if (a[i] > a[j])
  49.                 inva++;
  50.             if (b[i] > b[j])
  51.                 invb++;
  52.         }
  53.  
  54.     int duplicate = 0;
  55.     for (auto p : ma) {
  56.         if (p.second > 1)
  57.             duplicate = 1;
  58.     }
  59.     cout << (duplicate == 1 || inva % 2 == invb % 2 ? "Yes" : "No") << endl;
  60.     return 0;
  61. };
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement