結果
| 問題 |
No.4 おもりと天秤
|
| コンテスト | |
| ユーザー |
nobuta05
|
| 提出日時 | 2016-11-12 23:25:58 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 930 bytes |
| コンパイル時間 | 16,622 ms |
| コンパイル使用メモリ | 378,492 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-25 21:41:50 |
| 合計ジャッジ時間 | 14,312 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 WA * 2 |
コンパイルメッセージ
warning: value assigned to `inp` is never read --> src/main.rs:12:10 | 12 | let mut inp: String = getline(); | ^^^ | = help: maybe it is overwritten before being read? = note: `#[warn(unused_assignments)]` on by default
ソースコード
fn getline() -> String
{
let mut inp: String = String::new();
match std::io::stdin().read_line(&mut inp) {
Ok(_) => inp.trim().to_string(),
Err(e) => format!("{}", e),
}
}
fn main()
{
let mut inp: String = getline();
inp = getline();
let mut weight: Vec<i32> = Vec::new();
let tmp: Vec<_> = inp.split(" ").collect();
for x in tmp {
match x.parse::<i32>() {
Ok(var) => weight.push(var),
Err(e) => println!("{}", e),
}
}
let n: usize = weight.len() as usize;
let half: i32 = weight.iter().fold(0, | half, a | half + a) / 2;
let mut dp = [0;6000];
let mut nxt = [0;6000];
dp[0] = 1;
for k in 0..n as usize {
for i in 0..half as usize {
if dp[i] != 1 {
continue;
}
nxt[i] = 1;
if i as i32 + weight[k] <= half {
nxt[i+weight[k] as usize] = 1;
}
}
dp.copy_from_slice(&nxt);
}
if dp[half as usize] == 1 {
println!("possible");
}
else {
println!("impossible");
}
}
nobuta05