結果
問題 | No.227 簡単ポーカー |
ユーザー | yukyu |
提出日時 | 2021-03-07 17:07:15 |
言語 | Rust (1.77.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,788 bytes |
コンパイル時間 | 11,725 ms |
コンパイル使用メモリ | 380,344 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-08 23:26:26 |
合計ジャッジ時間 | 12,579 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | WA | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
ソースコード
use std::io::*; use std::str::FromStr; fn main() { let a = (0..5).map(|_| read()).collect::<Vec<i64>>(); exec(a); } fn exec(r: Vec<i64>) { let acc: Vec<Vec<i64>> = vec![]; let result = rec_pair(acc, r); println!("{:?}", make_hands(result)); } fn make_hands(mut r: Vec<Vec<i64>>) -> String { r.sort_by(|a, b| b.len().cmp(&a.len())); match r.len() { 4 => String::from("ONE PAIR"), 3 => three_or_two(r), 2 => fullhouse_or_no(r), _ => String::from("NO HAND"), } } fn three_or_two(r: Vec<Vec<i64>>) -> String { if r[0].len() == 3 { return String::from("THREE CARD"); } String::from("TWO PAIR") } fn fullhouse_or_no(r: Vec<Vec<i64>>) -> String { if r[0].len() == 3 { return String::from("FULL HOUSE"); } String::from("NO HAND") } fn rec_pair(mut acc: Vec<Vec<i64>>, mut r: Vec<i64>) -> Vec<Vec<i64>> { if r.is_empty() { return acc; } else { let head = r.remove(0); let mut b: Vec<i64> = vec![]; let mut remove_index: Vec<usize> = vec![]; b.push(head); for (i, v) in r.iter().enumerate() { if &head == v { remove_index.push(i); b.push(r[i]); } } remove_index.sort_by(|a, b| b.cmp(a)); for i in remove_index { r.remove(i); } acc.push(b); } rec_pair(acc, r) } fn read<T: FromStr>() -> T { let stdin = stdin(); let stdin = stdin.lock(); let token: String = stdin .bytes() .map(|c| c.expect("failed to read char") as char) .skip_while(|c| c.is_whitespace()) .take_while(|c| !c.is_whitespace()) .collect(); token.parse().ok().expect("failed to parse token") }