Submission #3830319


Source Code Expand

# type = [ :up, :down ]
# 用途が限定されるので破壊的。。。
def round_min!(time, base_min, type)
  surplus = time.min % base_min
  case type
    when :up
      time += (base_min - surplus) * 60 if surplus > 0
    when :down
      time -= surplus * 60
  end
  return time
end

n = gets.to_i

# 丸めを行うことによって、時間への繰り上がり等があると面倒なので、
# 日付型に変換して処理を行う。

time_ranges = (0...n).map{
  times = gets.split("-").map{ |hhmm|
    hh = hhmm[0, 2]
    mm = hhmm[2, 2]
    # 年は必須なのでなんでもいい値
    Time.new(1970, 1, 1, hh, mm)
  }
  [
    round_min!(times[0], 5, :down),
    round_min!(times[1], 5, :up),
  ]
}
time_ranges.sort!{ |a,b| a[0]<=>b[0] }

result = []
current = nil
time_ranges.each{ |from, to|
  if current == nil
    current = [ from, to ]
    next
  end
  if current[0] <= from && from <= current[1]
    current[1] = to if to > current[1]
  else
    result.push(current)
    current = [ from, to ]
  end
}
result.push(current)

puts result.map{ |from, to|
  to_hour = to.hour
  if to.day == 2
    to_hour = 24
  end
  sprintf("%02d%02d-%02d%02d", from.hour, from.min, to_hour, to.min)
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User mike_tora
Language Ruby (2.3.3)
Score 100
Code Size 1267 Byte
Status AC
Exec Time 1092 ms
Memory 14072 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
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 7 ms 1788 KB
00_sample_02.txt AC 7 ms 1788 KB
00_sample_03.txt AC 8 ms 1788 KB
cho_cho_chokudai.txt AC 1037 ms 13308 KB
chokudai_ga_cho.txt AC 990 ms 13320 KB
test_01.txt AC 13 ms 1788 KB
test_02.txt AC 13 ms 1788 KB
test_03.txt AC 13 ms 1788 KB
test_04.txt AC 13 ms 1788 KB
test_05.txt AC 13 ms 1788 KB
test_06.txt AC 19 ms 1908 KB
test_07.txt AC 14 ms 1788 KB
test_08.txt AC 12 ms 1788 KB
test_09.txt AC 33 ms 2040 KB
test_10.txt AC 31 ms 2040 KB
test_11.txt AC 26 ms 2040 KB
test_12.txt AC 25 ms 1912 KB
test_13.txt AC 15 ms 1788 KB
test_14.txt AC 30 ms 2040 KB
test_15.txt AC 37 ms 2040 KB
test_16.txt AC 14 ms 1788 KB
test_17.txt AC 27 ms 2040 KB
test_18.txt AC 15 ms 1788 KB
test_19.txt AC 22 ms 1912 KB
test_20.txt AC 24 ms 1912 KB
test_21.txt AC 1022 ms 13320 KB
test_22.txt AC 1050 ms 13320 KB
test_23.txt AC 1053 ms 13320 KB
test_24.txt AC 1042 ms 13320 KB
test_25.txt AC 1042 ms 13320 KB
test_26.txt AC 1030 ms 13320 KB
test_27.txt AC 1092 ms 13204 KB
test_28.txt AC 1025 ms 13320 KB
test_29.txt AC 7 ms 1788 KB
test_30.txt AC 9 ms 1788 KB
test_31.txt AC 160 ms 3320 KB
test_32.txt AC 9 ms 1788 KB
test_33.txt AC 674 ms 8308 KB
test_34.txt AC 7 ms 1788 KB
test_35.txt AC 17 ms 1908 KB
test_36.txt AC 1049 ms 14072 KB
test_37.txt AC 1054 ms 13320 KB
test_38.txt AC 1053 ms 13320 KB
test_39.txt AC 1042 ms 13320 KB
test_40.txt AC 1055 ms 13320 KB
test_41.txt AC 1044 ms 13052 KB
test_42.txt AC 1032 ms 13064 KB
test_43.txt AC 1067 ms 13064 KB