Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #pragma GCC target ("avx2")
- #pragma GCC optimization ("O3")
- #pragma GCC optimization ("unroll-loops")
- #define ll long long
- // typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> pbds;
- // find_by_order, order_of_key
- void solve(vector<ll> a, vector<ll> b, ll c, ll d);
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- cout.tie(NULL);
- ll t;
- t=1;
- // cin>>t;
- while(t--){
- solve({4,2,3,11, 6}, {1,2,2, 5, 4}, 1, 2);
- }
- return 0;
- }
- void solve(vector<ll> a, vector<ll> b, ll c, ll d){
- ll n = a.size();
- ll dcd = d-c;
- vector<ll> diff(n), diffS(n);
- for(ll i=0; i<n; ++i){
- diff[i] = a[i]-b[i];
- diffS[i] = diff[i];
- }
- sort(diffS.begin(), diffS.end());
- ll ct=0;
- for(int i=0; i<n-1; ++i){
- ll num = diff[i];
- ll pos = lower_bound(diffS.begin(), diffS.end(), num) - diffS.begin();
- diffS.erase(diffS.begin() + pos);
- ll k = upper_bound(diffS.begin(), diffS.end(), num-dcd) - diffS.begin();
- ll a = diffS.size()-k;
- ct += a;
- }
- cout<<ct<<endl;
- }
Add Comment
Please, Sign In to add comment