Permutation Swap
시간 제한2초메모리 제한1024 MB
순열이 주어질 때 위치 한 쌍을 최대 한 번 교환해 인접 증가 쌍의 개수를 최대로 만들고, 그 쌍이나 -1을 출력한다.
문제
길이가 인 순열 이 주어진다. 길이가 인 순열은 이상 이하의 모든 정수를 정확히 한 번씩 포함하는 수열이다.
아래와 같은 연산을 최대 한 번 수행할 수 있다.
- 을 고른 뒤 의 위치를 서로 바꾼다.
연산을 수행한 뒤 얻은 순열 에서 이면서 인 인접한 증가 쌍 의 개수를 최대화하고자 한다.
인접한 증가 쌍의 개수가 최대화되는 연산 방법을 구해보자.
입력
첫 번째 줄에 테스트 케이스의 개수 가 주어진다.
테스트 케이스의 첫 번째 줄에는 순열의 길이를 나타내는 정수 이 주어진다.
테스트 케이스의 두 번째 줄에는 순열 이 공백으로 구분되어 주어진다.
모든 테스트 케이스에 대한 의 총합은 을 넘지 않는다.
출력
각 테스트 케이스에 대해, 인접한 증가 쌍의 개수가 최대화되는 연산 방법을 한 줄에 출력한다.
- 연산을 수행하지 않는 것이 최적이라면 을 출력한다.
- 연산을 수행한다면 선택한 두 위치 를 공백으로 구분하여 출력한다.
가능한 정답이 여러 개라면, 그중 아무거나 하나 출력한다.