Submission #296008


Source Code Expand

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

class Program
{
    static void Main(string[] args)
    {
        Solver solver = new Solver();
        solver.solve();
        return;
    }
}

class Solver
{
    public void solve()
    {
        int n = ri();
        List<Tuple<int, int>> RT = new List<Tuple<int, int>>();
        List<Tuple<int, int>> result = new List<Tuple<int, int>>();
        
        for (int i = 0; i < n; i++)
        {
            var tmp = ria('-');
            RT.Add(new Tuple<int, int>(timeDowner(tmp[0]), timeUpper(tmp[1])));
        }

        if (n == 1)
        {
            Console.WriteLine("{0:D4}" + "-" + "{1:D4}", RT[0].Item1, RT[0].Item2);
            return;
        }

        var  minOrder = RT.OrderBy(x => x.Item1).ToArray();

        int startTime = 0;
        int endTime = 0;
        int distance = 0;

        foreach (var obj in minOrder)
        {
            if (timeDistance(obj.Item1, startTime) > distance)
            {
                result.Add(new Tuple<int, int>(startTime, endTime));
                startTime = obj.Item1;
                endTime = obj.Item2;
                distance = timeDistance(endTime, startTime);
            }
            else
            {
                if (endTime < obj.Item2)
                {
                    endTime = obj.Item2;
                    distance = timeDistance(endTime, startTime);
                }
            }
        }
        result.Add(new Tuple<int, int>(startTime, endTime));

        var ar = result.Skip(1).ToArray();

        foreach (var obj in ar)
            Console.WriteLine("{0:D4}" + "-" + "{1:D4}",obj.Item1 ,obj.Item2);
    }

    private int timeUpper(int num)
    {
        int[] coefficient = new int[4];
        int tmp = num;

        for (int i = 0; i < 4; i++)
        {
            coefficient[i] = tmp / (int)Math.Pow(10, 3 - i);
            tmp -= coefficient[i] * (int)Math.Pow(10, 3 - i);
        }

        if (coefficient[3] == 0)
        {
        }
        else if (coefficient[3] <= 5)
        {
            coefficient[3] = 5;
        }
        else
        {
            coefficient[3] = 0;
            coefficient[2]++;
            if (coefficient[2] == 6)
            {
                coefficient[2] = 0;
                coefficient[1]++;
                if (coefficient[1] == 10)
                {
                    coefficient[1] = 0;
                    coefficient[0]++;
                }
            }
        }
        tmp = 0;
        for (int i = 0; i < 4; i++)
            tmp += coefficient[i] * (int)Math.Pow(10, 3 - i);

        return tmp;
    }

    private int timeDowner(int num)
    {
        int[] coefficient = new int[4];
        int tmp = num;

        for (int i = 0; i < 4; i++)
        {
            coefficient[i] = tmp / (int)Math.Pow(10, 3 - i);
            tmp -= coefficient[i] * (int)Math.Pow(10, 3 - i);
        }
        if (coefficient[3] < 5)
            coefficient[3] = 0;
        else
            coefficient[3] = 5;
        tmp = 0;
        for (int i = 0; i < 4; i++)
            tmp += coefficient[i] * (int)Math.Pow(10, 3 - i);

        return tmp;
    }

    private int timeDistance(int upper, int lower) { return (upper / 100 * 60 + upper % 100) - (lower / 100 * 60 + lower % 100);}


    static String rs() { return Console.ReadLine(); }
    static int ri() { return int.Parse(Console.ReadLine()); }
    static long rl() { return long.Parse(Console.ReadLine()); }
    static double rd() { return double.Parse(Console.ReadLine()); }
    static String[] rsa() { return Console.ReadLine().Split(' '); }
    static int[] ria() { return Array.ConvertAll(Console.ReadLine().Split(' '), e => int.Parse(e)); }
    static int[] ria(char split) { return Array.ConvertAll(Console.ReadLine().Split(split), e => int.Parse(e)); }
    static long[] rla() { return Array.ConvertAll(Console.ReadLine().Split(' '), e => long.Parse(e)); }
    static double[] rda() { return Array.ConvertAll(Console.ReadLine().Split(' '), e => double.Parse(e)); }
    static double rounding(double target, int rank) { return Math.Round(target, rank, MidpointRounding.AwayFromZero); }
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User yamachuco
Language C# (Mono 2.10.8.1)
Score 0
Code Size 4337 Byte
Status WA
Exec Time 283 ms
Memory 9620 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 18
WA × 30
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 168 ms 6932 KB
00_sample_02.txt AC 125 ms 6328 KB
00_sample_03.txt AC 168 ms 6916 KB
cho_cho_chokudai.txt WA 260 ms 9260 KB
chokudai_ga_cho.txt WA 265 ms 9300 KB
test_01.txt WA 147 ms 7044 KB
test_02.txt WA 147 ms 7048 KB
test_03.txt WA 146 ms 6932 KB
test_04.txt WA 149 ms 6980 KB
test_05.txt WA 155 ms 6972 KB
test_06.txt WA 131 ms 6560 KB
test_07.txt WA 131 ms 6576 KB
test_08.txt WA 132 ms 6576 KB
test_09.txt WA 133 ms 6708 KB
test_10.txt WA 141 ms 6708 KB
test_11.txt WA 153 ms 7056 KB
test_12.txt WA 140 ms 6580 KB
test_13.txt WA 132 ms 6584 KB
test_14.txt WA 133 ms 6664 KB
test_15.txt WA 137 ms 6688 KB
test_16.txt AC 148 ms 6924 KB
test_17.txt AC 166 ms 7052 KB
test_18.txt AC 151 ms 6940 KB
test_19.txt AC 155 ms 6992 KB
test_20.txt AC 152 ms 7080 KB
test_21.txt WA 265 ms 9392 KB
test_22.txt WA 264 ms 9340 KB
test_23.txt WA 266 ms 9268 KB
test_24.txt WA 260 ms 9336 KB
test_25.txt WA 263 ms 9344 KB
test_26.txt WA 265 ms 9392 KB
test_27.txt AC 280 ms 9536 KB
test_28.txt AC 282 ms 9600 KB
test_29.txt AC 128 ms 6372 KB
test_30.txt AC 166 ms 6840 KB
test_31.txt WA 171 ms 7448 KB
test_32.txt AC 153 ms 6896 KB
test_33.txt WA 234 ms 8888 KB
test_34.txt AC 154 ms 6892 KB
test_35.txt AC 154 ms 6944 KB
test_36.txt AC 278 ms 9620 KB
test_37.txt WA 281 ms 9596 KB
test_38.txt WA 280 ms 9536 KB
test_39.txt AC 283 ms 9508 KB
test_40.txt AC 280 ms 9524 KB
test_41.txt WA 265 ms 9336 KB
test_42.txt WA 267 ms 9244 KB
test_43.txt WA 271 ms 9392 KB