Submission #2855999
Source Code Expand
extern crate core;
use std::io::{self, Read};
#[macro_use]
mod parser {
macro_rules! input {
($s:expr=>$($t:tt)*) => {
let mut lines=$s.split("\n");
$(
line_parse!(lines,$t);
)*
};
}
macro_rules! line_parse {
($lines:expr,($($name:ident:$t:tt)*)) => {
let mut line=$lines.next().unwrap().split_whitespace();
$(value_def!(line,$name,$t);)*
};
//複数行
($lines:expr,{$n:expr;$name:ident:$t:tt}) => {
values_def!($lines,$n,$name,$t);
};
}
macro_rules! value_def {
($line:expr, $name:ident, $t:tt) => {
let $name = value!($line, $t);
};
}
macro_rules! values_def {
($lines:expr, $n:expr, $name:ident, $t:tt) => {
let $name = {
let mut vec = Vec::new();
for i in 0..$n {
let mut next = $lines.next().unwrap().split_whitespace();
vec.push(value!(next, $t));
}
vec
};
};
}
macro_rules! value {
//配列
($line:expr,[$t:tt]) => {
$line.map(|x|{
let mut iter=::std::iter::once(x);
value!(iter,$t)
}).collect::<Vec<_>>()
};
//タプル
($line:expr,($($t:tt),*)) => {
($(value!($line,$t),)*)
};
//文字列
($line:expr,#) => {
$line.next().unwrap()
};
//単一値
($line:expr,$t:ty) => {
$line.next().unwrap().parse::<$t>().unwrap()
};
}
}
use std::cmp::{max, min};
macro_rules! max {
($x:expr) => {
$x
};
($x:expr, $($xs:tt)+) => {
max($x,max!($($xs)+))
};
}
macro_rules! min {
($x:expr) => {
$x
};
($x:expr, $($xs:tt)+) => {
min($x,min!($($xs)+))
};
}
fn main() {
let mut input = String::new();
io::stdin().read_to_string(&mut input).unwrap();
let output = solve(input.trim().to_string());
println!("{}", output);
}
fn solve(input: String) -> String {
//0.25,0.5,1,2
input!(input=>(q:i64 h:i64 s:i64 d:i64)(n:i64));
let one = min!(q * 4, h * 2, s);
if n % 2 == 0 {
min(one * n, d * (n / 2))
} else {
min(one * n, d * (n / 2) + one)
}.to_string()
}
macro_rules! tests {
($($name:ident: $input:expr=>$output:expr,)*) => {
mod tests {
$(
#[test]
fn $name() {
assert_eq!($output.trim().to_string(),super::solve($input.trim().to_string()));
}
)*
}
}
}
tests! {
test1: "20 30 70 90\n3" => "150",
test2: "10000 1000 100 10\n1" => "100",
test3: "10 100 1000 10000\n1" => "40",
test4: "12345678 87654321 12345678 87654321\n123456789" => "1524157763907942",
}
Submission Info
Submission Time |
|
Task |
A - Ice Tea Store |
User |
kgtkr |
Language |
Rust (1.15.1) |
Score |
300 |
Code Size |
2908 Byte |
Status |
AC |
Exec Time |
2 ms |
Memory |
4352 KB |
Compile Error
warning: unused import: `max`, #[warn(unused_imports)] on by default
--> ./Main.rs:70:16
|
70 | use std::cmp::{max, min};
| ^^^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
300 / 300 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.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 |
sample_04.txt |
AC |
2 ms |
4352 KB |
subtask_1_01.txt |
AC |
2 ms |
4352 KB |
subtask_1_02.txt |
AC |
2 ms |
4352 KB |
subtask_1_03.txt |
AC |
2 ms |
4352 KB |
subtask_1_04.txt |
AC |
2 ms |
4352 KB |
subtask_1_05.txt |
AC |
2 ms |
4352 KB |
subtask_1_06.txt |
AC |
2 ms |
4352 KB |
subtask_1_07.txt |
AC |
2 ms |
4352 KB |
subtask_1_08.txt |
AC |
2 ms |
4352 KB |
subtask_1_09.txt |
AC |
2 ms |
4352 KB |
subtask_1_10.txt |
AC |
2 ms |
4352 KB |
subtask_1_11.txt |
AC |
2 ms |
4352 KB |
subtask_1_12.txt |
AC |
2 ms |
4352 KB |
subtask_1_13.txt |
AC |
2 ms |
4352 KB |
subtask_1_14.txt |
AC |
2 ms |
4352 KB |
subtask_1_15.txt |
AC |
2 ms |
4352 KB |