#include #include #include using namespace std; int n,m; long long cnt; typedef vector VT; VT res,a,b; VT add(VT a,VT b) { int t=0; VT res; for(int i=0;i1)res.pop_back(); return res; } VT mul(VT a,int b) { VT res;int t=0; for(int i=0;i1)res.pop_back(); return res; } VT div(VT a,int b,int &t) { VT res; for(int i=a.size()-1;i>=0;i--) { t=t*10+a[i]; res.push_back(t/b); t=t%b; } reverse(res.begin(),res.end()); while(res.back()==0&&res.size()>1)res.pop_back(); return res; } int main() { int T;cin>>T; while(T--) { scanf("%d%d",&n,&m); res.clear(); a.clear();b.clear(); int k=n/2; int i=n,j=n-1; while(i){ a.push_back(i%10); i/=10; } int t=0; if(m>=k){ res=mul(a,n-1); res=div(res,2,t); for(int i=res.size()-1;i>=0;i--)printf("%d",res[i]); puts(""); } else { int a=(n-1)-((m-1)*2)-1; int b=n-1; int tem=a+b; while(tem) { res.push_back(tem%10); tem/=10; } res=mul(res,b-a+1); res=div(res,2,t); for(int i=res.size()-1;i>=0;i--)printf("%d",res[i]); puts(""); } } }