/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
//Note : If you are running this code on codechef then replace Ideone with Codechef
class Ideone //Codechef
{
{
try{
//write your code here
Scanner sc
= new Scanner
(System.
in); int t = sc.nextInt();
int n = 1001;
int[] v = new int[n];
for(int i = 1; i < n ; i++ ) {
int res = 1;
for( int j = 0; j < i ; j++ ) {
res *= (2 * i - j);
res /= (j + 1);
}
v[i] = (res / (i + 1));
}//end of for loop
int[] superNaturalWords = new int[n];
superNaturalWords[1] = v[1];
superNaturalWords[0] = 0;
for( int i = 2 ; i < n ; i++ ) {
superNaturalWords[i] = ( superNaturalWords[i-1] + v[i] );
}
while(t > 0) {
int q = sc.nextInt();
while( q > 0) {
int l = sc.nextInt();
int r = sc.nextInt();
System.
out.
println(superNaturalWords
[r
] - superNaturalWords
[l
-1]);
q--;
}//end of query loop
t--;
}//end of test case loop
}//end of try block
}
}//end of main function
}
LyogcGFja2FnZSBjb2RlY2hlZjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KCi8vTm90ZSA6IElmIHlvdSBhcmUgcnVubmluZyB0aGlzIGNvZGUgb24gY29kZWNoZWYgdGhlbiByZXBsYWNlIElkZW9uZSB3aXRoIENvZGVjaGVmCmNsYXNzIElkZW9uZSAvL0NvZGVjaGVmCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgogICAgewogICAgICAgIHRyeXsKICAgICAgICAgICAgLy93cml0ZSB5b3VyIGNvZGUgaGVyZQogICAgICAgICAgICAKICAgICAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgICAgIGludCB0ID0gc2MubmV4dEludCgpOwogICAgICAgICAgICBpbnQgbiA9IDEwMDE7CiAgICAgICAgICAgIGludFtdIHYgPSBuZXcgaW50W25dOwogICAgICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDwgbiA7IGkrKyApIHsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGludCByZXMgPSAxOyAKCSAgICAgICAgICAgICAgICBmb3IoIGludCBqID0gMDsgaiA8IGkgOyBqKysgKSB7IAoJCSAgICAgICAgICAgICAgICByZXMgKj0gKDIgKiBpIC0gaik7IAogICAgCSAgICAgICAgICAgICAgICByZXMgLz0gKGogKyAxKTsgCgkgICAgICAgICAgICAgICAgfSAKCSAgICAgICAgICAgICAgICAKCSAgICAgICAgICAgICAgICB2W2ldID0gKHJlcyAvIChpICsgMSkpOyAKCSAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9Ly9lbmQgb2YgZm9yIGxvb3AgCiAgICAgICAgICAgIAogICAgICAgICAgICBpbnRbXSBzdXBlck5hdHVyYWxXb3JkcyA9IG5ldyBpbnRbbl07CiAgICAgICAgICAgIHN1cGVyTmF0dXJhbFdvcmRzWzFdID0gdlsxXTsKICAgICAgICAgICAgc3VwZXJOYXR1cmFsV29yZHNbMF0gPSAwOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yKCBpbnQgaSA9IDIgOyBpIDwgbiA7IGkrKyApIHsKICAgICAgICAgICAgICAgc3VwZXJOYXR1cmFsV29yZHNbaV0gPSAoIHN1cGVyTmF0dXJhbFdvcmRzW2ktMV0gKyB2W2ldICk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICB3aGlsZSh0ID4gMCkgewogICAgICAgICAgICAgICAgaW50IHEgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICB3aGlsZSggcSA+IDApIHsKICAgICAgICAgICAgICAgICAgICBpbnQgbCA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgICAgICBpbnQgciA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3VwZXJOYXR1cmFsV29yZHNbcl0gLSBzdXBlck5hdHVyYWxXb3Jkc1tsLTFdKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBxLS07CiAgICAgICAgICAgICAgICB9Ly9lbmQgb2YgcXVlcnkgbG9vcAogICAgICAgICAgICAgICAgdC0tOwogICAgICAgICAgICB9Ly9lbmQgb2YgdGVzdCBjYXNlIGxvb3AgCiAgICAgICAgfS8vZW5kIG9mIHRyeSBibG9jawogICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKXsKCiAgICAgICAgfQogICAgfS8vZW5kIG9mIG1haW4gZnVuY3Rpb24gCgp9