File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed
Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ public static void main (String [] args ) throws Exception {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ StringTokenizer st;
9+ int N = Integer . parseInt(br. readLine());
10+
11+ int [] P = new int [N ];
12+ int [] S = new int [N ];
13+ int [] cards = new int [N ];
14+
15+ st = new StringTokenizer (br. readLine());
16+ for (int i = 0 ; i < N ; i++ ) P [i] = Integer . parseInt(st. nextToken());
17+
18+ st = new StringTokenizer (br. readLine());
19+ for (int i = 0 ; i < N ; i++ ) S [i] = Integer . parseInt(st. nextToken());
20+
21+ for (int i = 0 ; i < N ; i++ ) cards[i] = i;
22+
23+ int [] initial = cards. clone();
24+ int count = 0 ;
25+
26+ while (true ) {
27+ if (isTarget(cards, P )) {
28+ System . out. println(count);
29+ break ;
30+ }
31+
32+ int [] nextCards = new int [N ];
33+ for (int i = 0 ; i < N ; i++ ) {
34+ nextCards[S [i]] = cards[i];
35+ }
36+ cards = nextCards;
37+ count++ ;
38+
39+ if (Arrays . equals(cards, initial)) {
40+ System . out. println(" -1" );
41+ break ;
42+ }
43+ }
44+ }
45+
46+ private static boolean isTarget (int [] cards , int [] P ) {
47+ for (int i = 0 ; i < cards. length; i++ ) {
48+ if (P [cards[i]] != i % 3 ) {
49+ return false ;
50+ }
51+ }
52+ return true ;
53+ }
54+ }
55+ ```
You can’t perform that action at this time.
0 commit comments