IMohammedNasr

Untitled

Jun 9th, 2022 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define nl '\n'
  4. #define cin(v)        \
  5.     for (auto &i : v) \
  6.         cin >> i;
  7. #define cout(v)       \
  8.     for (auto &i : v) \
  9.         cout << i << " "; \
  10.         cout<<nl;
  11. #define br cout << '\n';
  12. #define ll long long
  13. #define ull unsigned long long
  14. #define all(v) v.begin(), v.end()
  15. #define rall(v) v.rbegin(), v.rend()
  16. #define MOD 1000000007
  17. #define Time cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " Secs" \
  18.                   << "\n";
  19.  
  20. void Warding()
  21. {
  22.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  23. #ifndef ONLINE_JUDGE
  24.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  25. #endif
  26. }
  27.  
  28.  
  29. void solve()
  30. {
  31.     ll n, sum1 = 0, sum2 = 0; cin>>n;
  32.     vector<int> a(n), b(n);
  33.     for(auto&i:a) cin>>i, sum1 += i;
  34.     for(auto&i:b) cin>>i, sum2 += i;
  35.     map<ll,ll> m, m2;
  36.     sort(all(a));
  37.     sort(all(b));
  38.     for(int i=0; i<n; i++){
  39.         if(sum1 > sum2){
  40.             int temp = max(a[i],b[i]), temp2 = min(a[i],b[i]);
  41.             sum1 -= a[i];
  42.             a[i] = temp2;
  43.             sum2 -= b[i];
  44.             b[i] = temp;
  45.             sum1 += a[i];
  46.             sum2 += b[i];
  47.         }else if(sum2 > sum1){
  48.             int temp = max(a[i],b[i]), temp2 = min(a[i],b[i]);
  49.             sum1 -= a[i];
  50.             sum2 -= b[i];
  51.             b[i] = temp2;
  52.             a[i] = temp;
  53.             sum1 += a[i];
  54.             sum2 += b[i];
  55.         }
  56.         else{
  57.             cout<<"YES"<<'\n';
  58.             return;
  59.         }
  60.     }
  61.     for(int i=0; i<n; i++){
  62.         m[b[i]]++;
  63.         m2[a[i]]++;
  64.     }
  65.     for(int i=0; i<n; i++){
  66.         if(m[a[i]-(abs(sum1-sum2)/2)] and (sum1+sum2)%2 == 0 and sum1 > sum2){
  67.             cout<<"YES"<<'\n';
  68.             return;
  69.         }
  70.     }
  71.     for(int i=0; i<n; i++){
  72.         if(m2[b[i]-(abs(sum1-sum2)/2)] and (sum1+sum2)%2 == 0 and sum2>sum1){
  73.             cout<<"YES"<<'\n';
  74.             return;
  75.         }
  76.     }
  77.     cout<<(sum1==sum2?"YES":"NO")<<'\n';
  78. }
  79.  
  80.  
  81. int main()
  82. {
  83.     Warding();
  84.     int t = 1;
  85.     cin >> t;
  86.     while (t--)
  87.     {
  88.         solve();
  89.     }
  90.     Time
  91. }
Add Comment
Please, Sign In to add comment