문제
Farmer John의 소
FJ는 소들을 가축 병원(bovine hospital)으로 데려가야 한다. 그런데 수의사는 매우 까다로워서,
FJ는 소들을 완전히 재정렬하는 것을 싫어한다. 그래서 다음과 같은 한 번의 연산만 수행할 수 있다.
두 개의 정수
(l, r) 를 선택한다. 구간[l, r] 에 해당하는 소들의 순서를 뒤집는다. 즉, 소들의 위치를l 번부터r 번까지 반전시킨다.
이 작업을 통해
FJ는 이 방법이 얼마나 효과적인지 측정하고 싶어 한다. 따라서
두 연산
l₁ ≠ l₂ 또는r₁ ≠ r₂ 이면 서로 다른 연산이다.
입력
첫 번째 줄에 정수
두 번째 줄에
세 번째 줄에
출력
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 30점 | |
#2 | 70점 | 추가 제약 조건 없음 |
예제1
3
1 3 2
3 2 1
3
3
0
0
(검사받을 수 있는 소가 0마리인 경우)
(1,1), (2,2), (3,3) → 이 경우, 배열이 바뀌지 않으므로 검사받을 수 있는 소가 없다. (3개)
(검사받을 수 있는 소가 1마리인 경우)
(1,2) → 배열:
[3,1,2]
→ 첫 번째 소가 검사받을 수 있다.(2,3) → 배열:
[1,2,3]
→ 두 번째 소가 검사받을 수 있다.(1,3) → 배열:
[2,3,1]
→ 세 번째 소가 검사받을 수 있다.
검사받을 수 있는 소가 2마리 이상인 경우는 불가능하므로, 0을 출력한다.
예제2
3
1 2 3
1 2 3
0
3
0
3
(검사받을 수 있는 소가 3마리인 경우)
(1,1), (2,2), (3,3) → 배열이 변하지 않으므로 모든 소가 검사받을 수 있다.
예제3
7
1 3 2 2 1 3 2
3 2 2 1 2 3 1
0
6
14
6
2
0
0
0
(검사받을 수 있는 소가 4마리인 경우)
(4,5) → 배열:
[1,3,2,1,2,3,2]
(5,7) → 배열:
[1,3,2,2,2,3,1]
이 두 경우만 가능하다.