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