結果

問題 No.135 とりあえず1次元の問題
ユーザー m0ntBL4Ncm0ntBL4Nc
提出日時 2019-10-04 14:00:43
言語 Rust
(1.77.0)
結果
AC  
実行時間 16 ms / 5,000 ms
コード長 1,375 bytes
コンパイル時間 672 ms
コンパイル使用メモリ 168,912 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-04-14 09:53:28
合計ジャッジ時間 1,760 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 16 ms
6,816 KB
testcase_01 AC 1 ms
6,940 KB
testcase_02 AC 1 ms
6,944 KB
testcase_03 AC 1 ms
6,940 KB
testcase_04 AC 1 ms
6,940 KB
testcase_05 AC 1 ms
6,944 KB
testcase_06 AC 1 ms
6,944 KB
testcase_07 AC 1 ms
6,944 KB
testcase_08 AC 1 ms
6,944 KB
testcase_09 AC 1 ms
6,940 KB
testcase_10 AC 2 ms
6,944 KB
testcase_11 AC 1 ms
6,940 KB
testcase_12 AC 1 ms
6,940 KB
testcase_13 AC 1 ms
6,940 KB
testcase_14 AC 1 ms
6,940 KB
testcase_15 AC 1 ms
6,940 KB
testcase_16 AC 1 ms
6,944 KB
testcase_17 AC 1 ms
6,944 KB
testcase_18 AC 1 ms
6,940 KB
testcase_19 AC 1 ms
6,944 KB
testcase_20 AC 1 ms
6,944 KB
testcase_21 AC 9 ms
6,940 KB
testcase_22 AC 16 ms
6,944 KB
evil01.txt AC 14 ms
6,940 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

fn getline() -> String {
    let mut __ret = String::new();
    std::io::stdin().read_line(&mut __ret).ok();
    return __ret;
}

fn abs_diatance(distance: i32) -> i32 {
    let mut result = distance;
    if distance < 0 {
        result = distance * -1;
    }

    return result;
}

fn check_all_elements_same(points: &Vec<i32>) -> bool {
    let mut flag = true;

    for i in 0..points.len()-2 {
        if points[i] != points[i+1] {
            flag = false;
            break;
        }
    }

    return flag;
}

fn main() {
    let n: usize = getline().trim().parse().unwrap();
    
    let line = getline();
    let v: Vec<_> = line.trim().split(' ').collect();

    let mut points: Vec<i32> = Vec::new();

    for i in 0..n {
        let point: i32 = v[i].trim().parse().unwrap();
        points.push(point);
    }

    points.sort();

    let mut min_distance = 1000000;
    let is_all_element_same = check_all_elements_same(&points);

    if is_all_element_same {
        min_distance = 0;
    } else {
        for i in 1..n-1 {
            if points[i+1] == points[i] {
                continue;
            }

            let mut distance = points[i+1] - points[i];
            distance = abs_diatance(distance);

            if distance < min_distance {
                min_distance = distance;
            }
        }
    }

    println!("{}", min_distance);
}
0