Submission #1163397


Source Code Expand

require 'matrix'

MOD = 10_007

def mul(a, b)
  Matrix.build(a.row_count, b.column_count) do |i, j|
    b.row_count.times.reduce(0) do |v, k|
      (v + a[i, k] * b[k, j]) % MOD
    end
  end
end

def pow(a, n)
  b = Matrix.unit(a.row_count)
  while n > 0
    b = mul(b, a) if n & 1 > 0
    a = mul(a, a)
    n >>= 1
  end
  b
end

A = Matrix[
  [0, 1, 0],
  [0, 0, 1],
  [1, 1, 1]
]
V = Matrix[[0, 0, 1]].t

n = gets.to_i
if n <= 3
  puts V[n - 1, 0]
  exit
end
puts mul(pow(A, n - 3), V)[2, 0]

Submission Info

Submission Time
Task B - トリボナッチ数列
User nejiko96
Language Ruby (2.3.3)
Score 100
Code Size 496 Byte
Status AC
Exec Time 16 ms
Memory 4732 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 36
Set Name Test Cases
All sample_01.txt, sample_02.txt, sample_03.txt, test_1.txt, test_1000000.txt, test_1002.txt, test_104.txt, test_107843.txt, test_10980.txt, test_1212.txt, test_1238.txt, test_13194.txt, test_14.txt, test_16.txt, test_2.txt, test_210782.txt, test_21694.txt, test_243.txt, test_24916.txt, test_278.txt, test_3.txt, test_31.txt, test_32.txt, test_42.txt, test_5555.txt, test_567914.txt, test_61868.txt, test_765671.txt, test_8195.txt, test_8353.txt, test_9.txt, test_9625.txt, test_97.txt, test_998.txt, test_999998.txt, test_999999.txt
Case Name Status Exec Time Memory
sample_01.txt AC 16 ms 2684 KiB
sample_02.txt AC 14 ms 2556 KiB
sample_03.txt AC 14 ms 2684 KiB
test_1.txt AC 14 ms 2556 KiB
test_1000000.txt AC 14 ms 2684 KiB
test_1002.txt AC 14 ms 2556 KiB
test_104.txt AC 14 ms 2684 KiB
test_107843.txt AC 14 ms 2684 KiB
test_10980.txt AC 14 ms 2684 KiB
test_1212.txt AC 14 ms 2684 KiB
test_1238.txt AC 14 ms 2556 KiB
test_13194.txt AC 14 ms 2684 KiB
test_14.txt AC 14 ms 2556 KiB
test_16.txt AC 14 ms 2556 KiB
test_2.txt AC 14 ms 2556 KiB
test_210782.txt AC 14 ms 2684 KiB
test_21694.txt AC 14 ms 2684 KiB
test_243.txt AC 14 ms 2684 KiB
test_24916.txt AC 14 ms 2684 KiB
test_278.txt AC 14 ms 2684 KiB
test_3.txt AC 14 ms 2556 KiB
test_31.txt AC 14 ms 2556 KiB
test_32.txt AC 14 ms 2556 KiB
test_42.txt AC 14 ms 2684 KiB
test_5555.txt AC 14 ms 2684 KiB
test_567914.txt AC 14 ms 2684 KiB
test_61868.txt AC 14 ms 2684 KiB
test_765671.txt AC 15 ms 2684 KiB
test_8195.txt AC 14 ms 2684 KiB
test_8353.txt AC 14 ms 2684 KiB
test_9.txt AC 14 ms 4604 KiB
test_9625.txt AC 15 ms 4732 KiB
test_97.txt AC 14 ms 2684 KiB
test_998.txt AC 14 ms 2684 KiB
test_999998.txt AC 14 ms 2684 KiB
test_999999.txt AC 14 ms 2684 KiB