1부터 N까지의 정수를 임의로 배열한 순열은 총 N!=N×(N−1)×(N−2)×⋯×1가지가 있다. 예를 들어 1부터 3까지의 수를 임의로 배열한 순열은 {1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}로 총 6가지가 있다.
다음과 같은 연산을 원하는 만큼 사용해서 수들이 감소하지 않도록 만들려고 한다. 연산을 수행한 결과는 순열이 아니어도 된다.
예를 들어, 크기가 N=5인 순열 {5,2,3,4,1}이 주어졌다고 하자. 첫 번째 원소를 1(=N−5+1)로 바꾸고, 다섯 번째 원소를 5(=N−1+1)로 바꾸면 {1,2,3,4,5}가 되어 감소하지 않는 수열을 만들 수 있다.
연산을 아무리 많이 사용해도 감소하지 않도록 만들 수 없는 순열이 존재한다. 순열이 주어지면 감소하지 않도록 만들 수 있는지 판별하는 프로그램을 작성하자.
첫째 줄에 테스트케이스의 개수 T가 주어진다. (1≤T≤50,000)
각 테스트케이스는 두 줄로 구성되어 있다.
테스트케이스의 첫째 줄에 순열의 길이 N이 주어진다. (1≤N≤50,000)
테스트케이스의 둘째 줄에 순열을 의미하는 N개의 수가 공백으로 구분되어 주어진다. 순열은 1부터 N까지의 정수가 한 번씩 등장한다.
모든 테스트케이스에서 N의 합은 50,000을 넘지 않는다.
각 테스트케이스마다 주어진 순열을 감소하지 않도록 만들 수 있으면 "YES" , 만들 수 없으면 "NO"를 출력한다.
Python 사용자는 PyPy로 제출하는 것을 권장합니다.