結果
問題 |
No.519 アイドルユニット
|
ユーザー |
|
提出日時 | 2017-06-23 17:59:59 |
言語 | Rust (1.83.0 + proconio) |
結果 |
TLE
|
実行時間 | - |
コード長 | 899 bytes |
コンパイル時間 | 10,576 ms |
コンパイル使用メモリ | 400,932 KB |
実行使用メモリ | 46,296 KB |
最終ジャッジ日時 | 2024-10-03 10:02:53 |
合計ジャッジ時間 | 15,335 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | TLE * 1 -- * 33 |
ソースコード
use std::{cmp, io, u32}; fn main() { let mut s = String::new(); io::stdin().read_line(&mut s).expect("read error"); let n: u32 = s.trim().parse().expect("parse error"); let mut v = vec![0; 2usize.pow(n)]; for i in 0..n { s.clear(); io::stdin().read_line(&mut s).expect("read error"); for (j, x) in s.trim().split_whitespace().enumerate() { v[2usize.pow(i as u32) | 2usize.pow(j as u32)] = cmp::max(x.parse().expect("parse error"), 0); } } let mut m: u32 = 2; while m <= n { for i in 1..v.len() { for j in i+1..v.len() { let idx = i | j; if i.count_ones() + j.count_ones() == m && idx.count_ones() == m { v[idx] = cmp::max(v[idx], v[i] + v[j]); } } } m += 2; } println!("{}", v.last().unwrap()); }