8555: Shinobu Loves Segment Tree

内存限制:128 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

As a cold-blooded, hot-blooded, and iron-blooded vampire, Shinobu likes to build segment trees.

She uses the build() function to build a segment tree, and the process of building the segment tree will increase the value of some numbers.

The specific content of the build() function is as follows:

void build(int id, int l, int r){
    value[id] += r-l+1;
    if(l == r) return;
    int mid = (r+l)/2;
    build(id*2, l, mid);
    build(id*2+1, mid+1, r);
    return;
}

For example, if Shinobi calls build(1,1,2) once, then value[1] will increase by 2value[2] and value[3] will increase by 1.

In the long life of a vampire, Shinobu builds a segment tree every day. She has been doing this since day 11, and on the i-th day, she will call build(1,1,i) to build a segment tree.

As a fan of Shinobi, playf got a fan number x. Now he wants to ask you a question: what the value[x]value[x] will be at the end of the n-th day ?

Attention: The initial value of all values is 0.

输入格式

The first line of the input contains a single integer t(1t105) --- the number of test cases.

Each of the next tt lines contains two integers n,x(1n109,1x4×n) --- playf's question.

输出格式

For each question, print one line contains one integer --- the answer to the ii-th question.

输入样例 复制

7
2 3
3 3
4 3
26 49
1000000000 4000000000
1000000000 1
11451419 19810

输出样例 复制

1
2
4
9
0
500000000500000000
4004478229