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 |
|
| 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 |