Submission #112861


Source Code Expand

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

class Program
{
    static void Main(string[] args)
    {
        List<RainningTimes> rainningTimesList = new List<RainningTimes>();
        int N = int.Parse(Console.ReadLine());
        for (int i = 0; i < N; i++)
        {
            var rainningTimesListay = Console.ReadLine().Split('-').Select(int.Parse).ToArray();
            int s = rainningTimesListay.ElementAtOrDefault(0);
            int e = rainningTimesListay.ElementAtOrDefault(1);
            int s1 = int.Parse(s.ToString()[s.ToString().Length - 1].ToString());
            if (s1 == 0) { }
            else if (s1 < 5)
                s -= s1;
            else if (s1 > 5) s -= s1 - 5;
            int e1 = int.Parse(e.ToString()[e.ToString().Length - 1].ToString());

            if (e1 == 0) { }
            else if (e1 < 5)
                e += 5 - e1;
            else if (e1 > 5) e += 10 - e1;
            int length = rainningTimesList.Count;
            for (int j = 0; j < length; j++)
            {
                if (JudgeBetween(s, rainningTimesList[j]))
                {
                    if (JudgeBetween(e, rainningTimesList[j]))
                    { break; }
                    else
                    {
                        rainningTimesList[j].End = e;
                        break;
                    }
                }
                else
                {
                    if (JudgeBetween(e, rainningTimesList[j]))
                    {
                        rainningTimesList[j].Start = s;
                        break;
                    }
                    else
                        if (rainningTimesList[j].Start > s && rainningTimesList[j].End < e)
                        {
                            rainningTimesList[j].Start = s;
                            rainningTimesList[j].End = e;
                            break;
                        }
                        else
                        {
                            rainningTimesList.Add(new RainningTimes(s, e));
                            break;
                        }
                }
            }
            if (rainningTimesList.Count == 0)
                rainningTimesList.Add(new RainningTimes(s, e));
        }
        for (int i = rainningTimesList.Count - 1; i >= 0; i--)
        {
            int s = rainningTimesList[i].Start;
            int e = rainningTimesList[i].End;
            for (int j = i - 1; j >= 0; j--)
            {
                if (JudgeBetween(s, rainningTimesList[j]))
                {
                    if (JudgeBetween(e, rainningTimesList[j])) break;
                    else
                    {
                        rainningTimesList[j].End = e;
                        rainningTimesList.RemoveAt(i);
                        break;
                    }
                }
                else
                {
                    if (JudgeBetween(e, rainningTimesList[j]))
                    {
                        rainningTimesList[j].Start = s;
                        rainningTimesList.RemoveAt(i);
                        break;
                    }
                    else
                        if (rainningTimesList[j].Start > s && rainningTimesList[j].End < e)
                        {
                            rainningTimesList[j].Start = s;
                            rainningTimesList[j].End = e;
                            rainningTimesList.RemoveAt(i);
                            break;
                        }
                }
            }
        }
        Sort(rainningTimesList);
        for (int i = 0; i < rainningTimesList.Count; i++)
            Console.WriteLine(rainningTimesList[i].Start.ToString().PadLeft(4, '0') + "-" + rainningTimesList[i].End.ToString().PadLeft(4, '0'));
    }
    private static bool JudgeBetween(int time, RainningTimes rainningTimes)
    {
        if (rainningTimes.Start <= time && rainningTimes.End >= time) return true;
        return false;
    }
    private static void Sort(List<RainningTimes> rainningTimesList)
    {
        for (int write = 0; write < rainningTimesList.Count; write++)
        {
            for (int sort = 0; sort < rainningTimesList.Count - 1; sort++)
            {
                if (rainningTimesList[sort].Start > rainningTimesList[sort + 1].Start)
                {
                    int start, end;
                    start = rainningTimesList[sort + 1].Start;
                    end =   rainningTimesList[sort + 1].End;
                    rainningTimesList[sort + 1].Start = rainningTimesList[sort].Start;
                    rainningTimesList[sort + 1].End = rainningTimesList[sort].End;
                    rainningTimesList[sort].Start = start;
                    rainningTimesList[sort].End = end;
                }
            }
        }

    }
}
    class RainningTimes
    {
        public int Start, End;
        public RainningTimes(int start, int end)
        {
            Start = start;
            End = end;
        }
    }

Submission Info

Submission Time
Task D - 感雨時刻の整理
User pattyo
Language C# (Mono 2.10.8.1)
Score 0
Code Size 5219 Byte
Status WA
Exec Time 1277 ms
Memory 8116 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 21
WA × 27
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 125 ms 6260 KB
00_sample_02.txt AC 121 ms 6264 KB
00_sample_03.txt AC 126 ms 6276 KB
cho_cho_chokudai.txt WA 227 ms 6636 KB
chokudai_ga_cho.txt AC 245 ms 6512 KB
test_01.txt AC 124 ms 6384 KB
test_02.txt AC 129 ms 6444 KB
test_03.txt AC 123 ms 6384 KB
test_04.txt AC 127 ms 6404 KB
test_05.txt AC 126 ms 6392 KB
test_06.txt AC 126 ms 6528 KB
test_07.txt WA 128 ms 6388 KB
test_08.txt AC 128 ms 6388 KB
test_09.txt WA 131 ms 6520 KB
test_10.txt AC 135 ms 6524 KB
test_11.txt WA 135 ms 6516 KB
test_12.txt AC 127 ms 6512 KB
test_13.txt WA 128 ms 6512 KB
test_14.txt WA 126 ms 6640 KB
test_15.txt AC 129 ms 6520 KB
test_16.txt WA 129 ms 6392 KB
test_17.txt WA 125 ms 6516 KB
test_18.txt WA 136 ms 6520 KB
test_19.txt WA 128 ms 6544 KB
test_20.txt WA 129 ms 6508 KB
test_21.txt WA 242 ms 6512 KB
test_22.txt WA 275 ms 6520 KB
test_23.txt WA 232 ms 6516 KB
test_24.txt WA 241 ms 6512 KB
test_25.txt WA 242 ms 6512 KB
test_26.txt WA 262 ms 7912 KB
test_27.txt AC 244 ms 6524 KB
test_28.txt WA 1277 ms 7928 KB
test_29.txt AC 123 ms 6388 KB
test_30.txt WA 123 ms 6392 KB
test_31.txt WA 154 ms 6764 KB
test_32.txt WA 125 ms 6376 KB
test_33.txt WA 232 ms 7736 KB
test_34.txt AC 122 ms 6264 KB
test_35.txt WA 127 ms 6520 KB
test_36.txt AC 240 ms 6520 KB
test_37.txt WA 646 ms 7916 KB
test_38.txt WA 262 ms 7928 KB
test_39.txt WA 248 ms 7772 KB
test_40.txt WA 907 ms 8116 KB
test_41.txt AC 232 ms 6516 KB
test_42.txt AC 241 ms 6652 KB
test_43.txt AC 241 ms 6516 KB