Submission #353528


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ProgrammingContest_CSharp
{
    class Program
    {
        struct Time
        {
            public int Hour { get; private set; }
            public int Minute { get; private set; }

            public int Tick
            {
                get { return Hour * 60 + Minute; }
            }

            public Time(int tick)
                : this(tick / 60, tick % 60)
            { }

            public Time(int hour, int minute)
                : this()
            {
                Hour = hour;
                Minute = minute;
            }

            public Time RoundDown()
            {
                Time time = this;
                time.Minute -= time.Minute % 5;
                return time;
            }

            public Time RoundUp()
            {
                Time time = this;
                time.Minute += (5 - time.Minute % 5) % 5;

                if (time.Minute >= 60)
                {
                    time.Hour++;
                    time.Minute -= 60;
                }

                return time;
            }

            public static bool operator ==(Time a, Time b)
            {
                return a.Hour == b.Hour && a.Minute == b.Minute;
            }

            public static bool operator !=(Time a, Time b)
            {
                return !(a == b);
            }

            public override string ToString()
            {
                return string.Format("{0:00}{1:00}", Hour, Minute);
            }
        }

        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            bool[] raining = new bool[24 * 60 + 2];

            for (int i = 0; i < n; i++)
            {
                string s = Console.ReadLine();
                var m = Regex.Match(s, "(\\d\\d)(\\d\\d)-(\\d\\d)(\\d\\d)");
                Time start = new Time(int.Parse(m.Groups[1].Value), int.Parse(m.Groups[2].Value)).RoundDown();
                Time end = new Time(int.Parse(m.Groups[3].Value), int.Parse(m.Groups[4].Value)).RoundUp();

                for (int t = start.Tick; t <= end.Tick; t++)
                {
                    raining[t] = true;
                }
            }

            List<string> ans = new List<string>();

            for (int t = 0; t <= 24 * 60; t++)
            {
                if (raining[t])
                {
                    Time begin = new Time(t);
                    while (raining[t])
                    {
                        t++;
                    }
                    Time end = new Time(t - 1);

                    ans.Add(begin + "-" + end);
                }
            }

            foreach (var item in ans)
            {
                Console.WriteLine(item);
            }
        }
    }
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User jxuaqxwd
Language C# (Mono 2.10.8.1)
Score 100
Code Size 3011 Byte
Status AC
Exec Time 501 ms
Memory 10712 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 186 ms 10648 KB
00_sample_02.txt AC 180 ms 10700 KB
00_sample_03.txt AC 180 ms 10612 KB
cho_cho_chokudai.txt AC 501 ms 10708 KB
chokudai_ga_cho.txt AC 455 ms 10580 KB
test_01.txt AC 191 ms 10696 KB
test_02.txt AC 187 ms 10712 KB
test_03.txt AC 191 ms 10704 KB
test_04.txt AC 194 ms 10632 KB
test_05.txt AC 189 ms 10684 KB
test_06.txt AC 188 ms 10708 KB
test_07.txt AC 192 ms 10708 KB
test_08.txt AC 193 ms 10708 KB
test_09.txt AC 193 ms 10648 KB
test_10.txt AC 189 ms 10648 KB
test_11.txt AC 188 ms 10644 KB
test_12.txt AC 186 ms 10708 KB
test_13.txt AC 184 ms 10708 KB
test_14.txt AC 188 ms 10712 KB
test_15.txt AC 187 ms 10708 KB
test_16.txt AC 180 ms 10708 KB
test_17.txt AC 185 ms 10608 KB
test_18.txt AC 184 ms 10708 KB
test_19.txt AC 184 ms 10708 KB
test_20.txt AC 185 ms 10612 KB
test_21.txt AC 410 ms 10584 KB
test_22.txt AC 427 ms 10596 KB
test_23.txt AC 412 ms 10680 KB
test_24.txt AC 424 ms 10704 KB
test_25.txt AC 416 ms 10712 KB
test_26.txt AC 409 ms 10712 KB
test_27.txt AC 409 ms 10704 KB
test_28.txt AC 417 ms 10708 KB
test_29.txt AC 180 ms 10704 KB
test_30.txt AC 180 ms 10704 KB
test_31.txt AC 216 ms 10708 KB
test_32.txt AC 181 ms 10592 KB
test_33.txt AC 339 ms 10712 KB
test_34.txt AC 187 ms 10712 KB
test_35.txt AC 192 ms 10704 KB
test_36.txt AC 437 ms 10584 KB
test_37.txt AC 423 ms 10584 KB
test_38.txt AC 414 ms 10708 KB
test_39.txt AC 416 ms 10712 KB
test_40.txt AC 432 ms 10708 KB
test_41.txt AC 463 ms 10712 KB
test_42.txt AC 456 ms 10712 KB
test_43.txt AC 448 ms 10656 KB