結果
問題 | No.1595 The Final Digit |
ユーザー |
![]() |
提出日時 | 2021-12-13 23:20:22 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 127 ms / 2,000 ms |
コード長 | 1,359 bytes |
コンパイル時間 | 3,203 ms |
コンパイル使用メモリ | 78,068 KB |
実行使用メモリ | 41,416 KB |
最終ジャッジ日時 | 2024-07-22 23:01:03 |
合計ジャッジ時間 | 6,245 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int p = sc.nextInt()%10; int q = sc.nextInt()%10; int r = sc.nextInt()%10; long K = sc.nextLong()-1; int now = 0; int loop = 0; ArrayList<Integer> arr = new ArrayList<>(); arr.add(p); arr.add(q); arr.add(r); for(;;) { now = (p+q+r)%10; arr.add(now); p = q; q = r; r = now; if( check(arr,p,q,r) != -1 ) { loop = check(arr,p,q,r); break; } } int s = arr.size(); if( K < loop ) { System.out.println(arr.get((int)K)); }else { K -= loop-1; K = K%(s-loop); System.out.println(arr.get((int)K+loop-1)); } } static int check( ArrayList<Integer> arr, int p, int q, int r ) { int N = arr.size()-3; for( int i = 0; i < N; i++ ) { int x = arr.get(i); int y = arr.get(i+1); int z = arr.get(i+2); if( x == p && y == q && z == r ) { return i+3; } } return -1; } }