結果
| 問題 |
No.825 賢いお買い物
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-02-15 00:41:30 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,170 bytes |
| コンパイル時間 | 12,693 ms |
| コンパイル使用メモリ | 401,552 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-06 13:34:40 |
| 合計ジャッジ時間 | 14,095 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
use std::io::Read;
use std::collections::HashSet;
fn main() {
let mut all_data = String::new();
std::io::stdin().read_to_string(&mut all_data).ok();
let abc: Vec<usize> = all_data.trim().split('\n').next().unwrap().trim().split_whitespace()
.map(|s| s.parse().unwrap())
.collect();
let a = abc[0];
let b = abc[1];
let c = abc[2];
let amount = a + 10*b;
let mut uses: HashSet<usize> = HashSet::new();
for i in 1..=amount {
if a >= i % 10 {
// smart
if b >= i / 10 {
if b - i / 10 + a - i % 10 == c {
uses.insert(i);
}
}
// 1 -> 10
if a - i % 10 >= 10 {
if b + a - i / 10 - i % 10 - 9 == c {
uses.insert(i);
}
}
// 10 -> 1
if b > i / 10 {
if b - i / 10 - 1 + a + 10 - i % 10 == c {
uses.insert(i);
}
}
}
}
if uses.is_empty() {
println!("Impossible");
} else {
println!("{}", uses.iter().min().unwrap());
}
}