結果
| 問題 |
No.18 うーさー暗号
|
| コンテスト | |
| ユーザー |
Common Lisp
|
| 提出日時 | 2024-10-06 02:22:44 |
| 言語 | Common Lisp (sbcl 2.5.0) |
| 結果 |
AC
|
| 実行時間 | 9 ms / 5,000 ms |
| コード長 | 1,192 bytes |
| コンパイル時間 | 187 ms |
| コンパイル使用メモリ | 27,904 KB |
| 実行使用メモリ | 21,888 KB |
| 最終ジャッジ日時 | 2024-10-06 02:22:46 |
| 合計ジャッジ時間 | 1,106 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 |
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 06 OCT 2024 02:22:44 AM): ; wrote /home/judge/data/code/Main.fasl ; compilation finished in 0:00:00.008
ソースコード
; 1文字ごとにコード属性 c に変換する
; i 番目の文字に対して (c - i - 1) % 26
; を行い文字に直す
(defun main ()
(let*
(
(s
; map result-type function &rest sequence+
; 各 sequence に function を適用し
; result-typeにして返す
(map
; vector (1次元の配列) として返すよう指示
'vector
; char-code 関数は文字のコード属性を返す
; ascii 文字コードでは A = 65, a = 97
(lambda (c) (- (char-code c) 65))
; 1行文字列入力
(read-line))))
(loop
; length は sequence の要素数を返す
for i below (length s)
; 変数 c を定義し (aref s i) に更新する
; aref 関数は配列にアクセスする関数
for c = (aref s i)
do
; write-char で文字を出力ストリームに出力する
(write-char
; code-char code
; コード属性がcodeの文字を返す
(code-char
; 1+ i は (+ 1 i)
(+ 65 (mod (- c (1+ i)) 26))))))
; 出力ストリームに改行を出力する
(terpri))
(main)
Common Lisp