Submission #121600


Source Code Expand

<?php
$inputs = array();
fscanf(STDIN, "%d", $a);
for ($i=0;$i < $a;$i++) {
    fscanf(STDIN, "%s", $inputs[$i]);
}

// echo $ret .  ' ' . $w . "\n";

// 初期化
$rain_data = array();
for ($i=0;$i<24;$i++) {
    for ($j=0;$j<12;$j++) {
        $rain_data[$i][$j] = 0;
    }
}

foreach ($inputs as $input) {
    $time = explode('-', $input);
    $time[0] = roundStartTime($time[0]);
    $time[1] = roundEndTime($time[1]);

    $start_time_hour_key = sprintf('%d', substr($time[0], 0, 2));
    $start_time_min_key  = floor( (int) substr($time[0], 2, 2) / 5);
    $end_time_hour_key   = sprintf('%d', substr($time[1], 0, 2));
    $end_time_min_key    = floor( (int) substr($time[1], 2, 2) / 5) - 1;

    for ($i=$start_time_hour_key;$i<=$end_time_hour_key;$i++) {
        if ($start_time_hour_key == $end_time_hour_key) {
            // ex) 1105-1150
            for ($j=$start_time_min_key;$j<=$end_time_min_key;$j++) {
                $rain_data[$i][$j] = 1;
            }
        } elseif ($i == $end_time_hour_key) {
            // ex) 1120-1230 -> 1200-1230
            for ($j=0;$j<=$end_time_min_key;$j++) {
                $rain_data[$i][$j] = 1;
            }
        } else {
            // ex) 1120-1230 -> 1120-1200
            for ($j=$start_time_min_key;$j<12;$j++) {
                $rain_data[$i][$j] = 1;
            }
        }
    }
}

$output = array();
$is_process = false;
foreach ($rain_data as $hour => $mins) {
    foreach ($mins as $key => $val) {
        if ($val === 1) {
            if ($is_process === false) {
                $start_minute = $key * 5;
                $start_hour = sprintf('%02d', $hour);
                $start_minute = sprintf('%02d', $start_minute);
                $start_time = $start_hour . $start_minute;

                $end_minute = $key * 5 + 5;
                if ($key == 11) {
                    $end_minute = 0;
                    $hour++;
                }

                $end_hour = sprintf('%02d', $hour);
                $end_minute = sprintf('%02d', $end_minute);
                $end_time = $end_hour . $end_minute;
                $is_process = true;
            } else {
                $end_minute = $key * 5 + 5;
                if ($key == 11) {
                    $end_minute = 0;
                    $hour++;
                }

                $end_hour = sprintf('%02d', $hour);
                $end_minute = sprintf('%02d', $end_minute);
                $end_time = $end_hour . $end_minute;

                if ($end_time == 2400) {
                    $output[] = $start_time . '-' . $end_time;
                }
            }
        } else {
            if ($is_process === true) {
                $output[] = $start_time . '-' . $end_time;
                $is_process = false;
            }
        }
    }
}

// output
foreach ($output as $val) {
    echo $val ."\n";
}
// var_dump($rain_data);

function roundStartTime($start_time) {
    round($start_time);
    $last_keta = substr($start_time, -1);
    $first_keta = substr($start_time, 0, 3);
    if (0 <= $last_keta && $last_keta < 5) {
        $last_keta = 0;
    } else {
        $last_keta = 5;
    }

    return $first_keta . $last_keta;
}

function roundEndTime($end_time) {
    $first_digit_minute  = substr($end_time, 2, 1);
    $second_digit_minute = substr($end_time, -1);
    $hour = substr($end_time, 0, 2);
    if (1 <= $second_digit_minute && $second_digit_minute <= 5) {
        $second_digit_minute = 5;
    } elseif (6 <= $second_digit_minute && $second_digit_minute <= 9) {
        $second_digit_minute = 0;
        if ($first_digit_minute > 5) {
            $first_digit_minute = 0;
        } else {
            $first_digit_minute++;
        }
    }

    // 1300の場合はkeyにするときに面倒なので1259ということにする
    if ($first_digit_minute == 0 && $second_digit_minute == 0) {
        $hour--;
        $first_digit_minute = 5;
        $second_digit_minute = 9;
    }

    return $hour . $first_digit_minute . $second_digit_minute;
}
?>

Submission Info

Submission Time
Task D - 感雨時刻の整理
User shibu_t
Language PHP (PHP 5.3.10)
Score 0
Code Size 4157 Byte
Status WA
Exec Time 2031 ms
Memory 12012 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 27
WA × 20
TLE × 1
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 43 ms 3812 KB
00_sample_02.txt WA 43 ms 3816 KB
00_sample_03.txt AC 42 ms 3816 KB
cho_cho_chokudai.txt TLE 2031 ms 11828 KB
chokudai_ga_cho.txt AC 865 ms 11940 KB
test_01.txt AC 44 ms 3936 KB
test_02.txt AC 45 ms 3892 KB
test_03.txt AC 51 ms 3936 KB
test_04.txt AC 46 ms 3940 KB
test_05.txt AC 44 ms 3932 KB
test_06.txt AC 49 ms 3892 KB
test_07.txt AC 48 ms 3888 KB
test_08.txt WA 48 ms 3812 KB
test_09.txt WA 66 ms 3940 KB
test_10.txt AC 61 ms 4064 KB
test_11.txt AC 57 ms 3944 KB
test_12.txt AC 59 ms 3940 KB
test_13.txt AC 52 ms 3940 KB
test_14.txt AC 61 ms 3888 KB
test_15.txt AC 68 ms 4068 KB
test_16.txt WA 46 ms 3800 KB
test_17.txt WA 54 ms 4060 KB
test_18.txt WA 46 ms 3936 KB
test_19.txt AC 53 ms 3936 KB
test_20.txt AC 51 ms 4072 KB
test_21.txt AC 555 ms 12008 KB
test_22.txt AC 687 ms 12012 KB
test_23.txt AC 573 ms 11992 KB
test_24.txt AC 668 ms 12012 KB
test_25.txt AC 609 ms 11996 KB
test_26.txt AC 459 ms 11884 KB
test_27.txt AC 448 ms 11820 KB
test_28.txt WA 491 ms 11996 KB
test_29.txt WA 43 ms 3820 KB
test_30.txt WA 43 ms 3824 KB
test_31.txt WA 107 ms 5092 KB
test_32.txt WA 43 ms 3892 KB
test_33.txt WA 329 ms 9268 KB
test_34.txt WA 43 ms 3896 KB
test_35.txt AC 47 ms 3948 KB
test_36.txt WA 783 ms 12008 KB
test_37.txt WA 473 ms 11884 KB
test_38.txt AC 464 ms 11876 KB
test_39.txt WA 526 ms 12000 KB
test_40.txt WA 502 ms 11816 KB
test_41.txt WA 1014 ms 11828 KB
test_42.txt WA 1023 ms 11880 KB
test_43.txt WA 1020 ms 11876 KB