結果
| 問題 | No.825 賢いお買い物 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2020-06-04 15:21:24 | 
| 言語 | Rust (1.83.0 + proconio) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 1,026 bytes | 
| コンパイル時間 | 18,960 ms | 
| コンパイル使用メモリ | 400,200 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-11-29 03:57:19 | 
| 合計ジャッジ時間 | 13,641 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 19 | 
ソースコード
fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim()
        .split_whitespace()
        .map(|e| e.parse().ok().unwrap())
        .collect()
}
fn main() {
  let abc:Vec<i64> = read_vec();
  let a = abc[0];
  let b = abc[1];
  let c = abc[2];
  let have = a + b * 100;
  let mut ans = None;
  for a_use in 0i64..=a {
    let a_money = a_use;
    for b_use in 0i64..=b {
      let b_money = b_use * 10;
      for price in 1..=have {
        let rest = price - a_money - b_money;
        if rest <= 0 {
          let t = rest.abs() / 10 + rest.abs() % 10;
          if a + b - a_use - b_use + t == c {
            if ans.is_none() {
              ans = Some(a_money+b_money+rest);
            } else if ans.unwrap() > a_money+b_money+rest {
              ans = Some(a_money+b_money+rest);
            }
          }
        }
      }
    }
  }
  if let Some(ans) = ans {
    println!("{:?}", ans);
  } else {
    println!("Impossible");
  }
}
            
            
            
        