#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<cmath>
#include<set>
#include<climits>
#include<map>
#include<stack>
#include<queue>
#include<list>
#include<bitset>
using namespace std;
#define ll long long int
#define vl vector<ll>
#define pii pair<int,int>
#define vii vector<pii>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define ff first
#define ss second
#define pb push_back
#define start ll t;cin>>t;while(t--)
#define setBits(x) bulitin_popcount(x)
#define mxh priority_queue<int>
#define mih priority_queue<int,vector<int>,greater<int>> 
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define mp make_pair
#define ps(x,y) fixed<<setprecision(y)<<x
#define vi vector<int>
#define deb(x) cout<<#x<<"="<<x<<endl;
#define all(a) (a).begin(),(a).end()
#define sortall(x) sort(all(x))
#define mk(arr,n,type)  type *arr=new type[n];
#define zerbits(x) __builtinctzll(x)
#define mod 1000000007
#define inf 1e18
#define MAXN 1000000000000000
#define MINN -1000000000000000000
#define sz(x) (int)x.size()
#define vs vector<string>
#define itr(a) for(auto it=a.begin();it!=a.end();it++)
#define INT_SIZE 32
#define PI 3.1415926535
map<int,list<int>> g;
template <class T>
T add(T v1, T v2)
{
    return (v1 % mod + v2 % mod) % mod;
}
template <class T>
T subtract(T v1, T v2)
{
    return (v1 % mod - v2 % mod) % mod;
}
template <class T>
T mult(T v1, T v2)
{
    return ((v1 % mod * v2 % mod) % mod + mod) % mod;
}
int mpow(int base, int exp);
void ipgraph(int m);
void dfs(int u, int par);
int gcd(int a,int b){
  if(b==0)
  return a;
  return gcd(b,a%b);
}
int lcm(int a,int b)
{
  return (a*b)/gcd(a,b);
}
bool isPrime(int n)
{
  for(int i=2;i*i<=n;i++){
    if(n%i==0)
    return false;
  }
  return true;
}
int sqrt(int n)
{
    int l = 0, h = 1e9;
    int ans = INT_MIN;
    while (l <= h)
    {
        int mid = (h - l) / 2 + l;
        if (mid * mid <= n)
        {
            ans = mid;
            l = mid + 1;
        }
        else
        {
            h = mid - 1;
        }
    }
    return ans;
}

void aeh()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL); cout.tie(0);
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
}



int main()
{
  aeh();
  start{
      ll n,x,t;
      cin>>n>>x>>t;
     // unsigned long long  sum=0;
      ll tmp=t/x;
      ll ans=max(0ll,n-tmp)*tmp + min(n-1,tmp-1)*min(n,tmp)/2;
      cout<<ans<<endl;
  }
  
  
  return 0;

}
 
int mpow(int base, int exp)
{
    if(exp==0)
    return 1%mod;
    ll u=mpow(base,exp/2);
    u=(u*u)%mod;
    if(exp%2==1)
    u=(u*base)%mod;
    return u;
}
void ipgraph(int n, int m){
	int i, u, v;
	while(m--){
		cin>>u>>v;
		g[u-1].pb(v-1);
		g[v-1].pb(u-1);
	}
}

void dfs(int u, int par){
	for(int v:g[u]){
		if (v == par) continue;
		dfs(v, u);
	}
}