#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 1000000007;
signed main()
{
#ifdef ONLINE_JUDGE
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#endif
#ifndef ONLINE_JUDGE
#endif
int T;
cin >> T;
while (T--)
{
int n;
cin >> n;
// cout << n << endl;
vector<int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
vector<bool> vis(n, false);
for (int i = 0; i < n; i++)
{
// cout << ((a[i] + i) % n + n) % n << " ";
vis[((a[i] + i) % n + n) % n] = true;
}
// cout << "hello" << endl;
// cout << endl;
bool flag = true;
for (int i = 0; i < n; i++)
{
if (!vis[i])
flag = false;
}
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
1031A - Golden Plate | 1559C - Mocha and Hiking |
427B - Prison Transfer | 330A - Cakeminator |
426A - Sereja and Mugs | 363A - Soroban |
1585C - Minimize Distance | 1506E - Restoring the Permutation |
1539A - Contest Start | 363D - Renting Bikes |
1198D - Rectangle Painting 1 | 1023B - Pair of Toys |
1725A - Accumulation of Dominoes | 1675E - Replace With the Previous Minimize |
839A - Arya and Bran | 16B - Burglar and Matches |
1625B - Elementary Particles | 1725G - Garage |
1725B - Basketball Together | 735A - Ostap and Grasshopper |
1183B - Equalize Prices | 1481A - Space Navigation |
1437B - Reverse Binary Strings | 1362B - Johnny and His Hobbies |
1299A - Anu Has a Function | 1111A - Superhero Transformation |
954A - Diagonal Walking | 39F - Pacifist frogs |
1451C - String Equality | 386A - Second-Price Auction |