Untitled
unknown
plain_text
2 years ago
3.9 kB
17
Indexable
/*
_________________________
| Written by vanshdhawan60 |
---------~u~---------
*/
#include <bits/stdc++.h>
using namespace std;
/*_____________________________ MACRO DEFINITIONS ____________________________*/
#define endl "\n"
#define fastio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define int long long // alert!
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using vi = vector<int>;
using pii = pair<int, int>;
using vvi = vector<vi>;
using vpii = vector<pii>;
//some useful functions and identifiers as macro
#define ff first
#define ss second
#define pb push_back
#define set_bits __builtin_popcountll
#define sz(x) ((int) (x).size())
#define all(x) (x).begin(), (x).end()
#define YES cout<<"YES"<<endl
#define NO cout<<"NO"<<endl
#define MOD 1000000007
#define PI 3.141592653589793238462
#define rep(i, a, b) for(int i = (a); i < (b); i++)
mt19937_64 rang(chrono::high_resolution_clock::now().time_since_epoch().count());
/*______________________ COMMON FUNCTION DEFINITIONS _________________________*/
int mpow(int base, int exp) { //binary exponentiation (modular power) (change MOD if required)
base %= MOD;
int result = 1;
while (exp > 0) {
if (exp & 1) result = ((ll)result * base) % MOD;
base = ((ll)base * base) % MOD;
exp >>= 1;
}
return result;
}
int mdivide (int a, int b) { //valid when MOD is prime
return ((ll) (a%MOD) * mpow(b,MOD-2)) % MOD;
}
/*_________________________________ DEBUGGER ________________________________*/
#ifndef ONLINE_JUDGE
#define debug(x) cerr << #x <<" "; _print(x); cerr << endl;
#else
#define debug(x)
#endif
void _print(ll t) {cerr << t;}
//void _print(int t) {cerr << t;} // !enable when using int & ll separately
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
void _print(ld t) {cerr << t;}
void _print(double t) {cerr << t;}
void _print(ull t) {cerr << t;}
template <class T, class V> void _print(pair <T, V> p);
template <class T> void _print(vector <T> v);
template <class T> void _print(set <T> v);
template <class T, class V> void _print(map <T, V> v);
template <class T> void _print(multiset <T> v);
template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.ff); cerr << ","; _print(p.ss); cerr << "}";}
template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}
///// debug code end
/*___________________________WRITE CORE LOGIC HERE_____________________*/
void solve () {
int n; cin>>n;
vi a(n), b(n);
rep(i,0,n) cin>>a[i];
rep(i,0,n) cin>>b[i];
vpii temp(n);
rep(i,0,n) temp[i] = {a[i] + b[i], i};
sort(temp.rbegin(), temp.rend());
int ans=0, turn=1;
for (auto [s, idx]: temp) {
if (turn&1) {
ans += a[idx]-1;
}
else ans -= (b[idx]-1);
turn ^= 1;
}
cout << ans << "\n";
}
/*___________________________END OF CORE CODE, GoodLuck_____________________*/
signed main()
{
fastio();
srand(chrono::high_resolution_clock::now().time_since_epoch().count());
int t=1;
cin>>t;
auto t1 = std::chrono::high_resolution_clock::now();
while(t--)
{
solve ();
}
auto t2 = std::chrono::high_resolution_clock::now();
#ifndef ONLINE_JUDGE
std::chrono::duration<double, std::milli> ms_double = t2 - t1;
cout << "\n\n" << ms_double.count() << "ms\n";
#endif
}
/*
_________________________
| Written by vanshdhawan60 |
---------~u~---------
*/Editor is loading...
Leave a Comment