提出 #35029967


ソースコード 拡げる

use std::collections::HashSet;

use proconio::{input, marker::Chars};

fn main() {
    input! {
        s: Chars,
    };
    let mut y = s[0..4].iter().collect::<String>().parse::<usize>().unwrap();
    let mut m = s[5..7].iter().collect::<String>().parse::<usize>().unwrap();
    let mut d = s[8..10]
        .iter()
        .collect::<String>()
        .parse::<usize>()
        .unwrap();

    let leap = |y: usize| (y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0));
    let dom = |y: usize, m: usize| -> usize {
        let d = if leap(y) {
            vec![31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        } else {
            vec![31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        };
        d[m - 1]
    };

    let next = |(y, m, d): (usize, usize, usize)| -> (usize, usize, usize) {
        if dom(y, m) != d {
            (y, m, d + 1)
        } else if m == 12 {
            (y + 1, 1, 1)
        } else {
            (y, m + 1, 1)
        }
    };
    let ok = |(y, m, d): (usize, usize, usize)| -> bool {
        format!("{}{:02}{:02}", y, m, d)
            .chars()
            .collect::<HashSet<_>>()
            .len()
            == 2
    };
    while !ok((y, m, d)) {
        let (ny, nm, nd) = next((y, m, d));
        y = ny;
        m = nm;
        d = nd;
    }
    println!("{}/{:02}/{:02}", y, m, d);
}

提出情報

提出日時
問題 E - 良い日付
ユーザ bouzuya
言語 Rust (1.42.0)
得点 7
コード長 1342 Byte
結果 AC
実行時間 125 ms
メモリ 2172 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 7 / 7
結果
AC × 4
AC × 29
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 02_corner_0_00.txt, 02_corner_0_01.txt, 02_corner_0_02.txt, 02_corner_0_03.txt, 02_corner_0_04.txt, 03_corner_1_00.txt, 03_corner_1_01.txt, 03_corner_1_02.txt, 03_corner_1_03.txt, 03_corner_1_04.txt, 03_corner_1_05.txt, 03_corner_1_06.txt, 03_corner_1_07.txt, 04_corner_2_00.txt, 04_corner_2_01.txt, 04_corner_2_02.txt, 04_corner_2_03.txt, 04_corner_2_04.txt, 04_corner_2_05.txt, 05_large_00.txt, 05_large_01.txt, 05_large_02.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 6 ms 2036 KiB
00_sample_01.txt AC 1 ms 2056 KiB
00_sample_02.txt AC 14 ms 2084 KiB
00_sample_03.txt AC 3 ms 1964 KiB
01_random_00.txt AC 69 ms 2064 KiB
01_random_01.txt AC 17 ms 2172 KiB
01_random_02.txt AC 50 ms 2008 KiB
02_corner_0_00.txt AC 3 ms 2116 KiB
02_corner_0_01.txt AC 2 ms 2108 KiB
02_corner_0_02.txt AC 1 ms 2116 KiB
02_corner_0_03.txt AC 3 ms 2048 KiB
02_corner_0_04.txt AC 1 ms 2064 KiB
03_corner_1_00.txt AC 1 ms 2144 KiB
03_corner_1_01.txt AC 1 ms 2044 KiB
03_corner_1_02.txt AC 1 ms 2088 KiB
03_corner_1_03.txt AC 2 ms 2080 KiB
03_corner_1_04.txt AC 1 ms 2028 KiB
03_corner_1_05.txt AC 1 ms 1904 KiB
03_corner_1_06.txt AC 1 ms 2076 KiB
03_corner_1_07.txt AC 1 ms 2040 KiB
04_corner_2_00.txt AC 1 ms 1980 KiB
04_corner_2_01.txt AC 1 ms 1952 KiB
04_corner_2_02.txt AC 1 ms 2036 KiB
04_corner_2_03.txt AC 2 ms 2072 KiB
04_corner_2_04.txt AC 1 ms 1944 KiB
04_corner_2_05.txt AC 1 ms 2040 KiB
05_large_00.txt AC 21 ms 2044 KiB
05_large_01.txt AC 4 ms 2056 KiB
05_large_02.txt AC 125 ms 2148 KiB