結果
| 問題 |
No.380 悪の台本
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-06-20 17:36:26 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,423 bytes |
| コンパイル時間 | 11,637 ms |
| コンパイル使用メモリ | 379,252 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-03 17:28:51 |
| 合計ジャッジ時間 | 12,421 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 3 WA * 5 |
ソースコード
use std::io::Read;
fn end_pattern(talk: String, matcher: &str) -> bool {
let length = talk.len();
let temp = talk.rfind(matcher);
temp.is_some()
&& temp.unwrap() + 3 + 3 >= length
&& talk.chars()
.filter(|c| c.is_ascii_alphanumeric())
.map(|c| c.to_string())
.collect::<Vec<String>>()
.join("")
.ends_with(matcher)
}
fn main() {
let mut all_data = String::new();
std::io::stdin().read_to_string(&mut all_data).ok();
let talks: Vec<_> = all_data.trim().split('\n').collect();
for t in talks.iter() {
let mut flg = false;
if t.len() <= 5 {
flg = false;
} else {
let (talker, talk) = t.split_at(5);
match talker {
"digi " => { flg = end_pattern(talk.trim().to_ascii_lowercase(), "nyo"); },
"petit" => { flg = end_pattern(talk.trim().to_ascii_lowercase(), "nyu"); },
"rabi " => { flg = talk.trim().to_ascii_lowercase().chars().filter(|c| c.is_ascii_alphanumeric()).count() > 0; },
"gema " => { flg = end_pattern(talk.trim().to_ascii_lowercase(), "gema"); },
"piyo " => { flg = end_pattern(talk.trim().to_ascii_lowercase(), "pyo"); },
_ => {},
}
}
if flg {
println!("CORRECT (maybe)");
} else {
println!("WRONG!");
}
}
}