Update solution for 블랙잭 w/ id 20044650

Time: 4ms
MemUsage: 13032KB
This commit is contained in:
2024-08-29 16:22:16 +09:00
parent afcf5d271c
commit 163dd7edf7

View File

@@ -0,0 +1,54 @@
macro_rules! parse_list {
($t: ty) => ({
let mut line = String::new();
std::io::stdin().read_line(&mut line).unwrap();
let list: Vec<$t> = line.split_whitespace()
.map(|w| w.parse::<$t>().unwrap()).collect();
list
})
}
macro_rules! parse_line {
($($t: ty),+) => ({
let mut line = String::new();
std::io::stdin().read_line(&mut line).unwrap();
let mut iter = line.split_whitespace();
($(iter.next().unwrap().parse::<$t>().unwrap()),+)
})
}
fn main(){
let (n, m): (usize, u32) = parse_line!(usize, u32);
let mut numbers: Vec<u32> = parse_list!(u32);
// sort
numbers.sort_unstable();
let mut max = 0;
for i1 in 0..n{
let s1 = numbers[i1];
if s1 > m{
break;
}
for i2 in i1+1..n{
let s2 = numbers[i2] + s1;
if s2 > m{
break;
}
for i3 in i2+1..n{
let s = numbers[i3] + s2;
if s <= m && s > max{
max = s;
}
else if s > m{
break;
}
}
}
}
println!("{}", max);
}