Submission #1240481


Source Code Expand

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    long N = sc.nextLong();
    long a = sc.nextLong();
    String k = sc.next();
    long[] b = new long[(int)N];
    for(int i = 0; i < N; i++) {
      b[i] = sc.nextLong();
    }
    ArrayList<Long> f = new ArrayList<Long>();
    f.add(a);
    long presence = a;
    long s = 0;
    long g = 1;
    for(int i = 0; i < N; i++) {
      presence = b[(int)presence - 1];
      if(f.contains(presence)) {
        for(int j = 0; j < N; j++) {
          if(f.get(j) == presence) {
            s = (long)j;
            g = (long)(i + 1) - s;
            break;
          }
        }
        break;
      } else {
        f.add(presence);
      }
    }
    long ans = 0;

    if(k.length() <= 6) {
      int step = Integer.parseInt(k);
      int p = (int)a;
      for(int i = 0; i < step; i++) {
        p = (int)b[p - 1];
      }
      ans = p;
    } else {
      // s+tをgで割った余り
      long r = 0;
      if(k.length() <= 18) {
        r = (Long.parseLong(k)) % g;
      } else {
        for(int i = 0; i < k.length(); i++) {
          long d = Long.parseLong(String.valueOf(k.charAt(i)));
          r = (10 * r + d) % g;
        }
      }
      while(r < s) {
        r += g;
      }  
      ans = f.get((int)r);
    }
    System.out.println(ans);
  }
}

Submission Info

Submission Time
Task D - へんてこ辞書
User takeya
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 1445 Byte
Status AC
Exec Time 491 ms
Memory 52604 KB

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 50 / 50 50 / 50
Status
AC × 2
AC × 12
AC × 25
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_03.txt
Subtask1 subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt
All subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt, subtask1_sample_02.txt
Case Name Status Exec Time Memory
subtask0_0.txt AC 392 ms 50208 KB
subtask0_1.txt AC 381 ms 45376 KB
subtask0_2.txt AC 388 ms 47568 KB
subtask0_3.txt AC 358 ms 45632 KB
subtask0_4.txt AC 407 ms 50460 KB
subtask0_5.txt AC 382 ms 46652 KB
subtask0_6.txt AC 343 ms 46580 KB
subtask0_7.txt AC 393 ms 46740 KB
subtask0_8.txt AC 346 ms 49068 KB
subtask0_9.txt AC 388 ms 50656 KB
subtask0_sample_01.txt AC 92 ms 21972 KB
subtask0_sample_03.txt AC 92 ms 19540 KB
subtask1_0.txt AC 414 ms 46968 KB
subtask1_1.txt AC 441 ms 51248 KB
subtask1_10.txt AC 491 ms 52604 KB
subtask1_11.txt AC 91 ms 19924 KB
subtask1_2.txt AC 404 ms 47976 KB
subtask1_3.txt AC 392 ms 43960 KB
subtask1_4.txt AC 346 ms 50888 KB
subtask1_5.txt AC 449 ms 50372 KB
subtask1_6.txt AC 425 ms 47500 KB
subtask1_7.txt AC 376 ms 44860 KB
subtask1_8.txt AC 469 ms 50708 KB
subtask1_9.txt AC 434 ms 50000 KB
subtask1_sample_02.txt AC 92 ms 21844 KB