Submission #41831844


Source Code Expand

# debug = true
debug = false
A_TIME, SHIFT_A_TIME, CAPS_LOCK_TIME = gets.split.map(&:to_i)
INPUT_BYTES = gets.chomp.bytes
SMALL_BYTE, LARGE_BYTE = 'aA'.bytes

dp = Array.new(2) { [] }
dp[0] << 0
dp[1] << CAPS_LOCK_TIME

INPUT_BYTES.each_with_index do |byte, i|
  if byte == SMALL_BYTE
    dp[0][i + 1] = dp[0][i] + A_TIME
    dp[1][i + 1] = dp[1][i] + SHIFT_A_TIME
  else
    dp[0][i + 1] = dp[0][i] + SHIFT_A_TIME
    dp[1][i + 1] = dp[1][i] + A_TIME
  end
  dp[0][i + 1] = [dp[0][i + 1], dp[1][i + 1] + CAPS_LOCK_TIME].min
  dp[1][i + 1] = [dp[1][i + 1], dp[0][i + 1] + CAPS_LOCK_TIME].min
end
p dp if debug
puts [dp[0][-1], dp[1][-1]].min

Submission Info

Submission Time
Task D - Shift vs. CapsLock
User HalMat
Language Ruby (2.7.1)
Score 400
Code Size 665 Byte
Status AC
Exec Time 150 ms
Memory 21808 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 31
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 02_rnd_08.txt, 02_rnd_09.txt, 03_max_00.txt, 03_max_01.txt, 03_max_02.txt, 03_max_03.txt, 04_border_00.txt, 04_border_01.txt, 04_border_02.txt, 04_border_03.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 56 ms 14152 KiB
00_sample_01.txt AC 59 ms 13908 KiB
00_sample_02.txt AC 55 ms 14040 KiB
01_small_00.txt AC 56 ms 14064 KiB
01_small_01.txt AC 55 ms 14012 KiB
01_small_02.txt AC 56 ms 13980 KiB
01_small_03.txt AC 58 ms 14016 KiB
01_small_04.txt AC 57 ms 14000 KiB
01_small_05.txt AC 55 ms 14064 KiB
01_small_06.txt AC 55 ms 14040 KiB
01_small_07.txt AC 57 ms 14044 KiB
01_small_08.txt AC 55 ms 14016 KiB
01_small_09.txt AC 61 ms 13988 KiB
02_rnd_00.txt AC 144 ms 21628 KiB
02_rnd_01.txt AC 135 ms 20832 KiB
02_rnd_02.txt AC 136 ms 20684 KiB
02_rnd_03.txt AC 118 ms 19432 KiB
02_rnd_04.txt AC 121 ms 19580 KiB
02_rnd_05.txt AC 116 ms 18948 KiB
02_rnd_06.txt AC 123 ms 19996 KiB
02_rnd_07.txt AC 105 ms 18496 KiB
02_rnd_08.txt AC 130 ms 20684 KiB
02_rnd_09.txt AC 104 ms 18272 KiB
03_max_00.txt AC 150 ms 21780 KiB
03_max_01.txt AC 146 ms 21736 KiB
03_max_02.txt AC 146 ms 21688 KiB
03_max_03.txt AC 147 ms 21808 KiB
04_border_00.txt AC 148 ms 21804 KiB
04_border_01.txt AC 145 ms 21736 KiB
04_border_02.txt AC 147 ms 21684 KiB
04_border_03.txt AC 143 ms 21668 KiB