Submission #1171461


Source Code Expand

use std::io;
use std::cmp::min;
fn main (){
    let input_one = read_ints();
    let a = input_one[1]; let b = input_one[2];
    let xs = read_ints();
    println!("{}", solve(&a,&b,&xs));
}

fn distances(xs:&[u64]) -> Vec<u64>{
    // Find the distance between adjacent cities
    xs.iter().zip(xs.iter().skip(1)).map(|(a,b)| b-a).collect()
}

fn solve(a:&u64, b:&u64, xs:&[u64]) -> u64 {
    let dists = distances(xs);
    dists.iter().fold(0, |acc,dist| {
        acc + min(a*dist, *b)
    })
}
fn read_ints() -> Vec<u64> {
    get_line().trim().split_whitespace().map(|n| n.parse().unwrap()).collect()
}

fn get_line() -> String {
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).ok();
    buf
}

Submission Info

Submission Time
Task D - Walk and Teleport
User jeck
Language Rust (1.15.1)
Score 500
Code Size 747 Byte
Status AC
Exec Time 10 ms
Memory 6396 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_balancedmax_01.txt, subtask_1_balancedmax_02.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_min_01.txt, subtask_1_onlya_01.txt, subtask_1_onlyamax_01.txt, subtask_1_onlyb_01.txt, subtask_1_onlybmax_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 4352 KB
sample_02.txt AC 2 ms 4352 KB
sample_03.txt AC 2 ms 4352 KB
subtask_1_balancedmax_01.txt AC 10 ms 6396 KB
subtask_1_balancedmax_02.txt AC 10 ms 6396 KB
subtask_1_max_01.txt AC 10 ms 6396 KB
subtask_1_max_02.txt AC 10 ms 6396 KB
subtask_1_min_01.txt AC 2 ms 4352 KB
subtask_1_onlya_01.txt AC 6 ms 4352 KB
subtask_1_onlyamax_01.txt AC 10 ms 6396 KB
subtask_1_onlyb_01.txt AC 4 ms 4352 KB
subtask_1_onlybmax_01.txt AC 10 ms 6396 KB
subtask_1_rand_01.txt AC 7 ms 4352 KB
subtask_1_rand_02.txt AC 9 ms 6396 KB
subtask_1_rand_03.txt AC 5 ms 4352 KB