🏇
ABC203 write up
ABC203のバチャに参加したので解法とかを書きます
A - Chinchirorin
問題文にあるようにif文を設計する. もう少し簡潔に書ける方法もあると思うけど思いつかなかった...
a.rs
#![allow(unused_imports)]
#![allow(non_snake_case)]
use cmp::{max, min, Reverse};
use proconio::{fastout, input, marker::*};
use std::collections::*;
use std::*;
fn main() {
input! {
a:usize,
b:usize,
c:usize
}
println!(
"{}",
if a == b {
c
} else if b == c {
a
} else if a == c {
b
} else {
0
}
);
}
B - AtCoder Condominium
format!()を使ってi0jの形の数字を作って加算する.Rustはformat!()が便利なので良い...
b.rs
#![allow(unused_imports)]
#![allow(non_snake_case)]
use cmp::{max, min, Reverse};
use proconio::{fastout, input, marker::*};
use std::collections::*;
use std::*;
fn main() {
input! {
n:usize,
k:usize
}
let mut ans = 0;
for i in 1..=n {
for j in 1..=k {
let x:usize = format!("{}0{}",i,j).parse().unwrap();
ans += x;
}
}
println!("{}",ans);
}
C - Friends and Travel costs
村の情報をsortして,今のコストで友人の居る村に行けるようなら行く.行けなければ所持金で行ける所まで行くようにすればOK.
c.rs
#![allow(unused_imports)]
#![allow(non_snake_case)]
use cmp::{max, min, Reverse};
use proconio::{fastout, input, marker::*};
use std::collections::*;
use std::*;
fn main() {
input! {
n:usize,
k:u64,
mut ab:[(u64,u64);n]
}
let mut nk = k;
let mut nx = 0;
let mut ans = 0;
ab.sort();
for (a, b) in ab {
if nk >= (a-nx) {
nk -= (a-nx);
nx = a;
nk += b;
}else{
break;
}
}
ans = nx + nk;
println!("{}", ans);
}
今までdbg!()は消さずに提出してたが,今回それが原因でTLEしてしまった.出力は重いので面倒くさがらずに消す癖をつけたいと思う.
Discussion