#include <bits/stdc++.h>
using namespace std;
#define int long long

int judge(int l, int r) {
    if (l % 2 == 1 && r % 2 == 1) {
        int n = r - l + 1; //之间数字个数
        int ans = r + (n / 2) * (-1);
        return ans;
    }
    if (l % 2 == 1 && r % 2 == 0) {
        int n = r - l + 1;
        int ans = (n / 2) * (-1);
        return ans;
    }
    if (l % 2 == 0 && r % 2 == 1) {
        int n = r - l + 1;
        int ans = (n / 2);
        return ans;
    }
    if (l % 2 == 0 && r % 2 == 0) {
        int n = r - l + 1;
        int ans = 1 * (n / 2) - r;
        return ans;
    }
    return 0;
}

signed main() {
    int t;
    cin >> t;
    while (t--) {
        int l, r;
        cin >> l >> r;
        cout << judge(l, r) << endl;
    }
    return 0;
}

动用神奇的大脑和灵巧的手,就会发现奇偶之间相加只会出现两种结果,1或者-1,与此同时穷举四种可能出现的情况, 就会发现当【l % 2 == 0 && r % 2 == 0】时和当【l % 2 == 1 && r % 2 == 1】时,末尾往往会多出一个数字,基于这个想法,我们就可以暴力解出来答案啦。(前缀和的话会超出栈空间,只能通过部分样例)