#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <queue>
#include <map>
#include <cmath>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
#include <cstring>
#include <string>
#include <stack>
#include <numeric>
#include <chrono>
#include <iomanip>
#define endl "\n"
#define All(a) a.begin(),a.end()
#define MOD 1000000007
#define vov vector<vector<int>>
//setbits(a) __builtin_popcount(a)
using ll = long long int;
#define pii pair<int,int>

using namespace std;

struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};

bool printSub(int a[], int sum)
{
    if(sum==0)
        return true;
    if(sum<0)
        return false;
    for(int i=0; i<3; ++i)
    {
        int rem=sum-a[i];
        if(printSub(a, rem))
        {
            cout << a[i] << " ";
            return true;
        }
    }
}


class tree
{
    int data;
    public:
    tree *left, *right;
    tree(int n)
    {
        this->data=n;
        this->left=this->right=NULL;
    }tree *insert(int n, tree *root)
    {
        if(root==NULL)
            return new tree(n);
        if(n<root->data)
            root->left=insert(n, root->left);
        else root->right = insert(n, root->right);
        return root;
    }void inorder(tree *root)
    {
        if(root==NULL)
            return;
        inorder(root->left);
        cout << root->data << " ";
        inorder(root->right);
    }
};

/*int fen[100]={}, a[100]={0, 2, 1, 1, 3, 2, 3, 4, 5, 6, 7, 8, 9};

void update(int i, int n)
{
    int pre = a[i];
    a[i]=n;
    while(i<=12)
    {
        fen[i]+=n;
        i+=(i&(~i+1));
    }
}
int sum(int i)
{
   int sum = 0;
   while(i)
   {
       sum+=fen[i];
       i-=(i&(~i+1));
   }return sum;
}*/


/*int a[7]={38, 27, 43, 3, 9, 82, 10};


void merge1(int l, int r, int m)
{
    int left[m-l+1];
    int right[r-m];
    for(int i=0; i<m-l+1; ++i)
        left[i]=a[l+i];
    for(int i=0; i<r-m; ++i)
        right[i]=a[m+i+1];
    int sz1 = m-l+1, sz2 = r-m;
    int i=0, j=0, k=l;
    while(i<sz1 && j<sz2)
    {
        if(left[i]<right[j])
            a[k++]=left[i++];
        else a[k++]=right[j++];
    }
    while(i<sz1)
        a[k++]=left[i++];
    while(j<sz2)
        a[k++]=right[j++];
}

void mergesort(int l, int r)
{
    if(l>=r)
        return;
    int m = (l+r)/2;
    mergesort(l, m);
    mergesort(m+1, r);
    merge1(l, r, m);
}*/
/*ll fen[100005], a[100005];
int n;
map<int,set<int>>ms;
void construct(int i)
{
    while(i<=100005)
    {
        int cur = i;
        i+=(i&(~i+1));
        ms[i].insert(cur);
    }
}
void update(int i)
{
    while(i<=n)
    {
        fen[i]=a[i];
        for(auto j: ms[i])
        {
            fen[i]|=fen[j];
        }i+=(i&(~i+1));
    }
}
ll ans()
{
    int m = n;
    ll answer = a[m];
    while(m)
    {
        answer|=fen[m];
        m-=(m&(~m+1));
    }return answer;
}*/
void solve()
{
        int a, b, k;
        cin >> a >> b >> k;
        int mn = min(a, b), mx = max(a, b);
        int dif = (mx+mn-1)/mn-1;
        if(dif<=k)
        {
            cout << "YES" << endl;
        }else cout << "NO" << endl;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);

    int t=1;
    cin >> t;
   // int tt=t;
    while(t--)
    {
        //cout << "Case #" << tt-t << ": ";
        solve();
    }

	return 0;
}
