結果
| 問題 | No.3 ビットすごろく |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-07 06:42:03 |
| 言語 | Fortran (gFortran 15.2.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 815 bytes |
| 記録 | |
| コンパイル時間 | 597 ms |
| コンパイル使用メモリ | 39,940 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2026-03-07 06:42:06 |
| 合計ジャッジ時間 | 1,099 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 33 |
ソースコード
PROGRAM MAIN
IMPLICIT NONE
INTEGER :: N
INTEGER, ALLOCATABLE :: A(:)
INTEGER, ALLOCATABLE :: QUE(:)
INTEGER :: HEAD, TAIL
INTEGER :: I, K
INTEGER :: LEFT, RIGHT
READ *, N
ALLOCATE(A(N), SOURCE = -1)
ALLOCATE(QUE(N))
HEAD = 1
TAIL = 1
QUE(1) = 1
A(1) = 1
DO WHILE(HEAD <= TAIL)
I = QUE(HEAD)
HEAD = HEAD + 1
K = POPCNT(I)
LEFT = I - K
RIGHT = I + K
IF (LEFT > 0 .AND. A(LEFT) == -1) THEN
A(LEFT) = A(I) + 1
TAIL = TAIL + 1
QUE(TAIL) = LEFT
END IF
IF (RIGHT <= N .AND. A(RIGHT) == -1) THEN
A(RIGHT) = A(I) + 1
TAIL = TAIL + 1
QUE(TAIL) = RIGHT
END IF
END DO
PRINT *, A(N)
END PROGRAM MAIN