結果
| 問題 | No.1595 The Final Digit | 
| コンテスト | |
| ユーザー |  yuruhiya | 
| 提出日時 | 2021-07-09 21:43:22 | 
| 言語 | Crystal (1.14.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 387 bytes | 
| コンパイル時間 | 12,984 ms | 
| コンパイル使用メモリ | 294,760 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-07-01 15:41:50 | 
| 合計ジャッジ時間 | 13,778 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 17 | 
ソースコード
p, q, r, k = read_line.split.map(&.to_i64)
k -= 3
p, q, r = {p, q, r}.map { |x| x % 10 }
count = [nil.as(Int64?)] * 1000
array = [] of Int64
k.times do |now|
  x = p*100 + q*10 + r
  if cnt = count[x]
    cycle = now - cnt
    pos = (k - cnt) % cycle
    puts array[cnt + pos] % 10
    exit
  end
  count[x] = now
  array << x
  p, q, r = {q, r, p + q + r}.map { |x| x % 10 }
end
puts r
            
            
            
        