Submission #261391


Source Code Expand

def solve(count)
  t = Struct.new(:hour, :minute)
  flags = Array.new(25,0)
  for i in 1..count
    str = gets
    raining = str.split('-')

    # correct
    b = t.new(raining[0][0,2].to_i, raining[0][2,2].to_i)
    e = t.new(raining[1][0,2].to_i, raining[1][2,2].to_i)
    b.minute -= b.minute % 5
    e.minute += ( 5 - e.minute) % 5
    rainStart = b.hour * 100 + b.minute
    rainEnd = e.hour * 100 + e.minute

    # set flag
    times = rainStart
    shift = ((times % 100) / 5) * 2
    index = times / 100
    while times < rainEnd do
      # flag:raining
      flags[index] |= 1 << shift

      times += 5
      if times % 100 >= 60 then
        times = (times + 100) / 100 * 100
      end
      shift = ((times % 100) / 5) * 2
      index = times / 100
    end
    # flag:stop rain
    flags[index] |= 2 << shift
  end

  isRaining = false
  for i in 0..(flags.size - 1)
    shift = 0
    while shift < 24 do
      flag = flags[i] >> shift & 0x03
      if flag & 0x01 == 1 then
        beginRain = i * 100 + ((shift / 2) * 5) if not isRaining
        isRaining = true
      elsif flag == 0x02 then
        endRain = i * 100 + ((shift / 2) * 5)
        isRaining = false

        puts "#{beginRain.to_s.rjust(4,'0')}-#{endRain.to_s.rjust(4,'0')}"
      end
      shift += 2
    end
  end
end

begin
  str = gets
  exit if str == nil or str.chomp.length == 0
  solve(str.to_i)
end while true

Submission Info

Submission Time
Task D - 感雨時刻の整理
User trmc
Language Ruby (1.9.3)
Score 0
Code Size 1458 Byte
Status TLE
Exec Time 2033 ms
Memory 4104 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 44
TLE × 4
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 57 ms 3932 KB
00_sample_02.txt AC 54 ms 3944 KB
00_sample_03.txt AC 53 ms 3936 KB
cho_cho_chokudai.txt TLE 2033 ms 4068 KB
chokudai_ga_cho.txt AC 1569 ms 3948 KB
test_01.txt AC 61 ms 4052 KB
test_02.txt AC 57 ms 3948 KB
test_03.txt AC 55 ms 3948 KB
test_04.txt AC 55 ms 3944 KB
test_05.txt AC 55 ms 3940 KB
test_06.txt AC 72 ms 4104 KB
test_07.txt AC 62 ms 3948 KB
test_08.txt AC 61 ms 3940 KB
test_09.txt AC 94 ms 4100 KB
test_10.txt AC 78 ms 4096 KB
test_11.txt AC 66 ms 3948 KB
test_12.txt AC 82 ms 3948 KB
test_13.txt AC 56 ms 4104 KB
test_14.txt AC 83 ms 3948 KB
test_15.txt AC 99 ms 3948 KB
test_16.txt AC 56 ms 3948 KB
test_17.txt AC 63 ms 3936 KB
test_18.txt AC 56 ms 3948 KB
test_19.txt AC 65 ms 3948 KB
test_20.txt AC 57 ms 3948 KB
test_21.txt AC 420 ms 3944 KB
test_22.txt AC 916 ms 3948 KB
test_23.txt AC 494 ms 3936 KB
test_24.txt AC 862 ms 3948 KB
test_25.txt AC 640 ms 3948 KB
test_26.txt AC 254 ms 3948 KB
test_27.txt AC 261 ms 4092 KB
test_28.txt AC 276 ms 3944 KB
test_29.txt AC 54 ms 3968 KB
test_30.txt AC 53 ms 3944 KB
test_31.txt AC 84 ms 3936 KB
test_32.txt AC 55 ms 3944 KB
test_33.txt AC 186 ms 4104 KB
test_34.txt AC 54 ms 3940 KB
test_35.txt AC 54 ms 3944 KB
test_36.txt AC 1221 ms 4100 KB
test_37.txt AC 261 ms 3944 KB
test_38.txt AC 251 ms 3948 KB
test_39.txt AC 316 ms 3948 KB
test_40.txt AC 312 ms 3944 KB
test_41.txt TLE 2031 ms 4076 KB
test_42.txt TLE 2030 ms 4076 KB
test_43.txt TLE 2032 ms 4072 KB