結果
| 問題 | No.179 塗り分け |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-14 10:32:24 |
| 言語 | Fortran (gFortran 15.2.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,526 bytes |
| 記録 | |
| コンパイル時間 | 1,587 ms |
| コンパイル使用メモリ | 41,588 KB |
| 実行使用メモリ | 6,144 KB |
| 最終ジャッジ日時 | 2026-03-14 10:32:28 |
| 合計ジャッジ時間 | 2,148 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 WA * 1 |
| other | AC * 30 WA * 10 |
ソースコード
PROGRAM MAIN
IMPLICIT NONE
INTEGER :: H, W, I, J, K, COUNT, X, Y, DX, DY
CHARACTER*50, ALLOCATABLE, DIMENSION(:) :: S
INTEGER, ALLOCATABLE, DIMENSION(:, :) :: S_NUM
INTEGER, ALLOCATABLE, DIMENSION(:) :: U, V
READ *, H, W
ALLOCATE(S(H))
ALLOCATE(S_NUM(H, W))
S_NUM = 0
READ *, S
DO I = 1, H
DO J = 1, W
IF (S(I)(J:J) == '#') THEN
S_NUM(I, J) = 1
END IF
END DO
END DO
K = SUM(S_NUM)
! PRINT *, K
IF (MOD(K, 2) == 1) THEN
PRINT *, 'NO'
RETURN
END IF
ALLOCATE(U(K))
ALLOCATE(V(K))
COUNT = 1
DO I = 1, H
DO J = 1, W
IF(S_NUM(I, J) == 1) THEN
U(COUNT) = I
V(COUNT) = J
COUNT = COUNT + 1
END IF
END DO
END DO
! PRINT *, U
! PRINT *, V
DO I = 2, K
DX = U(I) - U(1)
DY = V(I) - V(1)
COUNT = 0
DO J = 1, K
X = U(J) + DX
Y = V(J) + DY
IF ((X < 1 .OR. X > H) .OR. (Y < 1 .OR. Y > W)) THEN
CYCLE
END IF
IF(S_NUM(X, Y) == 1) THEN
COUNT = COUNT + 1
S_NUM(X, Y) = 2
END IF
END DO
IF (2 * COUNT == K) THEN
PRINT *, 'YES'
RETURN
END IF
DO J = 1, K
IF(S_NUM(U(J), V(J)) == 2) S_NUM(U(J), V(J)) = 1
END DO
END DO
PRINT *, 'NO'
END PROGRAM MAIN