Submission #3608877


Source Code Expand

n = gets.to_i
m = Math.log2(n+1).ceil
mod = 10**9+7
dp = Array.new(m).map{Array.new(3,0)}
dp[0][0] = dp[0][1] = 1

for i in 1..m-1
    dp[i][0] += dp[i-1][0]
    dp[i][1] += dp[i-1][1]
    dp[i][2] += dp[i-1][2]*3+dp[i-1][1]
    if n[m-i-1] == 0
        dp[i][0] += dp[i-1][1]
    else
        dp[i][1] += dp[i-1][0]
        dp[i][2] += dp[i-1][1]
    end
    for j in 0..2
        dp[i][j] %= mod
    end
end
p dp[m-1].inject(:+)%mod

Submission Info

Submission Time
Task D - Xor Sum
User koikotya
Language Ruby (2.3.3)
Score 600
Code Size 454 Byte
Status AC
Exec Time 8 ms
Memory 3836 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_max_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt, subtask_1_rand_04.txt, subtask_1_rand_05.txt, subtask_1_small_rand_01.txt, subtask_1_small_rand_02.txt, subtask_1_small_rand_03.txt, subtask_1_small_rand_04.txt, subtask_1_small_rand_05.txt, subtask_1_specific_01.txt, subtask_1_specific_02.txt, subtask_1_specific_03.txt, subtask_1_specific_04.txt, subtask_1_specific_05.txt
Case Name Status Exec Time Memory
sample_01.txt AC 8 ms 1916 KB
sample_02.txt AC 7 ms 1788 KB
sample_03.txt AC 7 ms 1788 KB
subtask_1_max_01.txt AC 7 ms 1788 KB
subtask_1_rand_01.txt AC 7 ms 1788 KB
subtask_1_rand_02.txt AC 7 ms 1788 KB
subtask_1_rand_03.txt AC 7 ms 1788 KB
subtask_1_rand_04.txt AC 7 ms 1788 KB
subtask_1_rand_05.txt AC 7 ms 1788 KB
subtask_1_small_rand_01.txt AC 7 ms 1788 KB
subtask_1_small_rand_02.txt AC 7 ms 1788 KB
subtask_1_small_rand_03.txt AC 7 ms 1788 KB
subtask_1_small_rand_04.txt AC 7 ms 1788 KB
subtask_1_small_rand_05.txt AC 7 ms 1788 KB
subtask_1_specific_01.txt AC 7 ms 1788 KB
subtask_1_specific_02.txt AC 7 ms 1788 KB
subtask_1_specific_03.txt AC 7 ms 1788 KB
subtask_1_specific_04.txt AC 7 ms 1788 KB
subtask_1_specific_05.txt AC 7 ms 3836 KB