結果
| 問題 |
No.8000 enuemu暗号
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-04-09 21:02:48 |
| 言語 | Kuin (KuinC++ v.2021.9.17) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,317 bytes |
| コンパイル時間 | 2,275 ms |
| コンパイル使用メモリ | 148,460 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-16 10:08:34 |
| 合計ジャッジ時間 | 2,816 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 1 |
ソースコード
func main()
var in: [][]char :: ["pfnovu", "axqwuf", "mbgrihcdejkolsty"]
var ou: [][]char :: ["orange", "cipher", "bqsuftlmdxynzvwj"]
var decordingTable: dict<char, char> :: #dict<char, char>
var used: []bool :: #[26]bool
for i(0, ^in - 1)
for j(0, ^in[i] - 1)
if(decordingTable.exist(in[i][j]))
if(decordingTable.get(in[i][j], &) <> ou[i][j])
do cui@print("Unexpected!\n")
assert false
end if
else
do decordingTable.add(in[i][j], ou[i][j])
do used[ou[i][j] $ int - 'a' $ int] :: true
end if
end for
end for
var cnt: int
for i(0, 25)
do cnt :+ used[i] ?(0, 1)
end for
if(cnt > 1)
do cui@print("I can't solve this!\n")
assert false
end if
if(cnt = 1)
for i(0, 25)
if(!used[i])
for j(0, 25)
if(!decordingTable.exist('a'.offset(j)))
do decordingTable.add('a'.offset(j), 'a'.offset(i))
end if
end for
end if
end for
end if
if(dbg)
do cui@print("|入力|")
for i(0, 25)
do cui@print("\{'a'.offset(i)}|")
end for
do cui@print("\n")
do cui@print("|出力|")
for i(0, 25)
do cui@print("\{decordingTable.get('a'.offset(i), &)}|")
end for
do cui@print("\n")
end if
var S: []char :: cui@input()
for i(0, ^S - 1)
do cui@print("\{decordingTable.get(S[i], &)}")
end for
do cui@print("\n")
end func