ABC203 write up

ABC 203의 bacha에 참가했기 때문에 해법 같은 걸 썼어요.

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 형식의 숫자를 더하기!()편해서 좋아요...
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


마을의 정보를 안내하고 현재의 비용으로 친구가 있는 마을로 가자.
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);
}
지금까지!안 닦고 냈어요. 이번에는 이 때문에TLE가 됐어요. 출력이 너무 무거워서 쉬운 습관을 기르고 싶어요.