Submission #321043


Source Code Expand

using System;
using System.Collections.Generic;
using System.Linq;

namespace ABC1D
{
    class Program
    {
        const int NUM_POINT_OF_TIME = 24 * 60 / 5 + 1;

        static void Main(string[] args)
        {
            int N;
            int[][] timeRanges;
            ReadData(out N, out timeRanges);

            List<int[]> timeRangesConbined = ConbineRange(N, timeRanges);

            foreach (var range in timeRangesConbined)
                Console.WriteLine("{0:0000}-{1:0000}", range[0], range[1]);
        }

        private static void ReadData(out int N, out int[][] timeRanges)
        {
            N = int.Parse(Console.ReadLine());

            timeRanges = new int[N][];
            for (int i = 0; i < N; i++)
            {
                timeRanges[i] = new int[2];
                var line = Console.ReadLine().Split('-');
                timeRanges[i][0] = int.Parse(line[0]);
                timeRanges[i][1] = int.Parse(line[1]);
            }
        }

        private static List<int[]> ConbineRange(int N, int[][] timeRanges)
        {
            int[] numRangeAtPoint = CountEachPoint(N, timeRanges);

            List<int[]> timeRangesConbined = new List<int[]>();
            bool isRaining = false;
            for (int i = 0; i < NUM_POINT_OF_TIME; i++)
            {
                if (numRangeAtPoint[i] > 0 && !isRaining)
                {
                    isRaining = true;
                    int S = (i * 5) / 60 * 100 + (i * 5) % 60;
                    timeRangesConbined.Add(new int[] { S, 0 });
                }

                if (numRangeAtPoint[i] == 0 && isRaining)
                {
                    isRaining = false;
                    int E = (i * 5) / 60 * 100 + (i * 5) % 60;
                    timeRangesConbined.Last<int[]>()[1] = E;
                }
            }

            return timeRangesConbined;
        }

        private static int[] CountEachPoint(int N, int[][] timeRanges)
        {
            int[] counter = new int[NUM_POINT_OF_TIME];

            for (int i = 0; i < N; i++)
            {
                int S_min = timeRanges[i][0] / 100 * 60 + timeRanges[i][0] % 100;
                int E_min = timeRanges[i][1] / 100 * 60 + timeRanges[i][1] % 100;

                counter[S_min / 5]++;
                counter[(E_min + 4) / 5]--;
            }

            for (int i = 1; i < NUM_POINT_OF_TIME; i++)
                counter[i] += counter[i - 1];

            return counter;
        }
    }
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User DUS
Language C# (Mono 2.10.8.1)
Score 100
Code Size 2579 Byte
Status AC
Exec Time 173 ms
Memory 10900 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 128 ms 8788 KB
00_sample_02.txt AC 125 ms 8832 KB
00_sample_03.txt AC 125 ms 8832 KB
cho_cho_chokudai.txt AC 171 ms 10860 KB
chokudai_ga_cho.txt AC 170 ms 10868 KB
test_01.txt AC 131 ms 8980 KB
test_02.txt AC 132 ms 8964 KB
test_03.txt AC 129 ms 8964 KB
test_04.txt AC 132 ms 9008 KB
test_05.txt AC 132 ms 8968 KB
test_06.txt AC 129 ms 8828 KB
test_07.txt AC 128 ms 8900 KB
test_08.txt AC 127 ms 8860 KB
test_09.txt AC 132 ms 8948 KB
test_10.txt AC 129 ms 8952 KB
test_11.txt AC 129 ms 8924 KB
test_12.txt AC 130 ms 8872 KB
test_13.txt AC 128 ms 8884 KB
test_14.txt AC 135 ms 8952 KB
test_15.txt AC 130 ms 8948 KB
test_16.txt AC 137 ms 8860 KB
test_17.txt AC 130 ms 8868 KB
test_18.txt AC 133 ms 8960 KB
test_19.txt AC 130 ms 8948 KB
test_20.txt AC 129 ms 8948 KB
test_21.txt AC 171 ms 10864 KB
test_22.txt AC 170 ms 10868 KB
test_23.txt AC 171 ms 10876 KB
test_24.txt AC 170 ms 10868 KB
test_25.txt AC 173 ms 10864 KB
test_26.txt AC 170 ms 10792 KB
test_27.txt AC 170 ms 10864 KB
test_28.txt AC 171 ms 10868 KB
test_29.txt AC 128 ms 8832 KB
test_30.txt AC 128 ms 8820 KB
test_31.txt AC 137 ms 9236 KB
test_32.txt AC 129 ms 8824 KB
test_33.txt AC 156 ms 10104 KB
test_34.txt AC 129 ms 8832 KB
test_35.txt AC 128 ms 8828 KB
test_36.txt AC 170 ms 10868 KB
test_37.txt AC 169 ms 10788 KB
test_38.txt AC 170 ms 10864 KB
test_39.txt AC 169 ms 10884 KB
test_40.txt AC 171 ms 10900 KB
test_41.txt AC 170 ms 10852 KB
test_42.txt AC 168 ms 10868 KB
test_43.txt AC 170 ms 10860 KB