Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///481
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- typedef pair <ll, ll> pll;
- const int Max = 1e5 + 10;
- const int Mod = 1e9 + 7;
- const ll Inf = 1LL << 62;
- ll ar[Max];
- ll br[Max];
- vector <ll> tree[3 * Max];
- void build( int node, int l, int r ) {
- if( l == r ) {
- tree[node].push_back( br[l] );
- return;
- }
- int mid = (l + r) >> 1;
- int lf = node * 2;
- int rt = node * 2 + 1;
- build( lf, l, mid );
- build( rt, mid + 1, r);
- merge( tree[lf].begin(), tree[lf].end(), tree[rt].begin(), tree[rt].end(), back_inserter( tree[node] ) );
- }
- int query( int node, int l, int r, int L, int R, ll val ) {
- if( L > r || l > R ) {
- return 0;
- }
- if( L <= l && r <= R ) {
- return lower_bound( tree[node].begin(), tree[node].end(), val ) - tree[node].begin();
- }
- int mid = (l + r) >> 1;
- int lf = node * 2;
- int rt = node * 2 + 1;
- int u = query( lf, l, mid, L, R, val );
- int v = query( rt, mid+1, r, L, R, val );
- return u + v;
- }
- void scan( ll& num ) {
- num = 0;
- char c = getchar_unlocked();
- int flag = 0;
- while ( !((c >= '0' & c <= '9') || c == '-') ) {
- c = getchar_unlocked();
- }
- if ( c == '-' ) {
- flag = 1;
- c = getchar_unlocked();
- }
- while ( c >= '0' && c <= '9' ) {
- num = (num << 1) + (num << 3) + c - '0';
- c = getchar_unlocked();
- }
- if ( flag == 1 ) {
- num = 0 - num;
- }
- }
- int main() {
- #ifdef Mr_Emrul
- freopen("inputf.in", "r", stdin);
- #endif ///Mr_Emrul
- //ios_base::sync_with_stdio(false);
- //cin.tie(0);
- int t, n;
- scanf("%d", &t);
- while( t-- ) {
- scanf("%d", &n);
- for( int i=1; i<=n; i++ ) {
- scan(ar[i]);
- //ar[i] = sqrt( ar[i] );
- br[i] = ar[i] * 2LL;
- }
- for( int i=0; i<3*Max; i++ ) {
- tree[i].clear();
- }
- build( 1, 1, n );
- ll res = 0;
- for( int i=2; i<=n; i++ ) {
- res += query( 1, 1, n, 1, i-1, ar[i] + 1 );
- } printf("%lld\n", res);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement