結果
問題 |
No.90 品物の並び替え
|
ユーザー |
|
提出日時 | 2025-05-30 23:58:40 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1,639 ms / 5,000 ms |
コード長 | 1,375 bytes |
コンパイル時間 | 12,005 ms |
コンパイル使用メモリ | 400,548 KB |
実行使用メモリ | 72,452 KB |
最終ジャッジ日時 | 2025-05-31 00:00:00 |
合計ジャッジ時間 | 15,228 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 9 |
ソースコード
/* * Author: srtry * Created: 2025-05-25T16:29:24+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; use std::collections::{HashMap, HashSet}; fn permutations(num:&usize) -> HashSet<Vec<usize>>{ if num==&2 { return HashSet::from([vec![1,2], vec![2,1]]); } let permutations_:HashSet<Vec<usize>> = permutations(&(num-1)); let mut ans:HashSet<Vec<usize>> = HashSet::new(); for permutation in permutations_.iter() { for i in 0..=permutation.len() { let mut tmp = permutation.clone(); tmp.insert(i,*num); ans.insert(tmp); } } return ans; } fn main() { input!{ n:usize, m:usize, score_sheet:[[usize;3];m] } let out = stdout(); let mut out = BufWriter::new(out.lock()); let mut max_pt = 0; let patterns = permutations(&n); for pattern in patterns.iter() { let mut map:HashMap<usize,usize> = HashMap::new(); for i in 0..pattern.len() { map.insert(pattern[i]-1,i); } let mut pattern_pt = 0; for rule in score_sheet.iter() { if map.get(&rule[0]) < map.get(&rule[1]) { pattern_pt += rule[2]; } } max_pt = max_pt.max(pattern_pt); } write!(out, "{}", max_pt).unwrap(); }