結果
| 問題 | No.3435 [Cherry 8th Tune *] 何回 LOVE SONG を書き換えただろうか? |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-01-23 22:40:10 |
| 言語 | Rust (1.92.0 + proconio + num + itertools) |
| 結果 |
AC
|
| 実行時間 | 2,376 ms / 3,000 ms |
| コード長 | 861 bytes |
| 記録 | |
| コンパイル時間 | 1,684 ms |
| コンパイル使用メモリ | 208,260 KB |
| 実行使用メモリ | 109,568 KB |
| 最終ジャッジ日時 | 2026-01-23 22:41:32 |
| 合計ジャッジ時間 | 47,405 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 48 |
ソースコード
use itertools::{Itertools, enumerate};
use proconio::{input, marker::Chars};
fn main() {
input! {
aa: Chars,
ddd: [[u64; aa.len()]; aa.len()],
(n, m): (usize, usize),
ss: [Chars; n],
}
let char_to_int = |ch: char| aa.iter().position(|&a| ch == a).unwrap();
let uuu = ss
.iter()
.map(|s| s.iter().map(|&ch| char_to_int(ch)).collect_vec())
.collect_vec();
let mut lookup = vec![vec![0_u64; aa.len()]; m];
for pos in 0..m {
for from in 0..aa.len() {
for uu in &uuu {
let to = uu[pos];
lookup[pos][from] += ddd[from][to];
}
}
}
let solve = |uu: &[usize]| enumerate(uu).map(|(i, &u)| lookup[i][u]).sum::<u64>();
let output = uuu.iter().map(|uu| solve(uu)).join("\n");
println!("{output}");
}