페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
30000
ms
메모리 제한
1024
MB
처음에 임의의 조합으로 설정된 개의 다이얼로 이루어진 번호 자물쇠가 있다고 생각해 보자. 자물쇠 다이얼의 크기는 이며, 이는 다이얼이 이상 이하의 값을 가질 수 있고 위쪽이나 아래쪽으로 회전할 수 있다는 뜻이다. 또한 다이얼은 왼쪽에서 오른쪽 순서로 배치되며, 가장 왼쪽과 가장 오른쪽 다이얼의 위치는 각각 와 이다. 모든 다이얼의 값을 로 설정하면 자물쇠를 열 수 있다.
다음과 같은 연산을 없거나 그 이상 수행할 수 있다.
연산의 나열은 다음 조건을 만족해야 한다.
초기 조합이 인 자물쇠를 여는 유효한 연산 순서의 예는 다음과 같다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
다음은 수행할 수 없는 몇 가지 연산이다.
이후에 구간 을 회전하는 것. 가 에 완전히 포함되지 않기 때문이다(와 일 때 를 만족하지 않는다).
이후에 구간 을 회전하는 것.
목표는 자물쇠의 모든 다이얼을 로 설정하는 데 필요한 유효한 연산의 최소 횟수를 출력하는 것이다.
시간 제한: 30초. 메모리 제한: 1 GB. . 모든 에 대해 .
. .
. .
. .
입력의 첫 번째 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스는 두 줄로 이루어진다.
각 테스트 케이스의 첫 번째 줄에는 두 정수 와 가 주어지며, 각각 자물쇠의 다이얼 수와 다이얼의 크기를 나타낸다.
각 테스트 케이스의 두 번째 줄에는 개의 정수 가 주어지며, -번째 정수는 자물쇠 초기 조합의 -번째 다이얼 값을 나타낸다.
각 테스트 케이스마다 Case #$x$: $y$을 포함하는 한 줄을 출력한다. 여기서 는 부터 시작하는 테스트 케이스 번호이고, 는 문제 설명에 제시된 방식으로 자물쇠를 여는 데 필요한 최소 연산 횟수이다.
2
6 2
1 1 0 1 0 1
6 2
0 1 0 0 1 1
Case #1: 3
Case #2: 2
2
6 10
1 1 2 2 3 3
6 10
1 1 9 9 1 1
Case #1: 3
Case #2: 3
샘플 케이스 #1에서 자물쇠를 여는 데 필요한 최소 연산 횟수는 이다. 다음 연산을 사용하여 자물쇠를 열 수 있다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
샘플 케이스 #2에서 자물쇠를 여는 데 필요한 최소 연산 횟수는 이다. 다음 연산을 사용하여 자물쇠를 열 수 있다.
구간 을 위쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
샘플 케이스 #1에서 자물쇠를 여는 데 필요한 최소 연산 횟수는 이다. 다음 연산을 사용하여 자물쇠를 열 수 있다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
샘플 케이스 #2에서 자물쇠를 여는 데 필요한 최소 연산 횟수는 이다. 다음 연산을 사용하여 자물쇠를 열 수 있다.
구간 을 위쪽으로 회전한다.
구간 을 위쪽으로 회전한다.
구간 을 아래쪽으로 회전한다.
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.