tests = int(input())
for _ in range(tests):
students = int(input())
ronde = [int(x) for x in input().split()]
res = dict()
for i, x in enumerate(ronde[:-1]):
res[x - ronde[i + 1]] = res.get(x - ronde[i + 1], 0) + 1
possible = True
compte = -1
for k, v in res.items():
if k not in {-1, 1}:
compte += 1
if v > 1:
possible = False
if -1 in res and 1 in res:
possible = False
if compte > 0:
possible = False
if possible:
print("YES")
else:
print("NO")
#include <bits/stdc++.h>
#define in(x) return void(cout << x)
using namespace std;
int a[1007];
void solve()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
/// !counter;
int dem = 0;
for (int i = 1; i < n; i++)
dem += (a[i] > a[i + 1]);
if ( (dem == 0) || (dem == 1 && a[n] < a[1]) ) in("YES\n");
/// counter;
dem = 0;
for (int i = 1; i < n; i++)
dem += (a[i] < a[i + 1]);
if ( (dem == 0) || (dem == 1 && a[n] > a[1]) ) in("YES\n");
cout << "NO\n";
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define task "A"
if (fopen(task".inp","r"))
{
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
1618A - Polycarp and Sums of Subsequences | 1618B - Missing Bigram |
938. Range Sum of BST | 147. Insertion Sort List |
310. Minimum Height Trees | 2110. Number of Smooth Descent Periods of a Stock |
2109. Adding Spaces to a String | 2108. Find First Palindromic String in the Array |
394. Decode String | 902. Numbers At Most N Given Digit Set |
221. Maximal Square | 1200. Minimum Absolute Difference |
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |