結果
| 問題 |
No.179 塗り分け
|
| コンテスト | |
| ユーザー |
jj
|
| 提出日時 | 2016-10-13 22:59:55 |
| 言語 | Fortran (gFortran 14.2.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,735 bytes |
| コンパイル時間 | 1,377 ms |
| コンパイル使用メモリ | 34,816 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-03 03:27:50 |
| 合計ジャッジ時間 | 2,629 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 33 WA * 7 |
ソースコード
program main
implicit none
integer::H,W,i,j,hoffset,woffset
integer,allocatable::mas(:,:),nuri(:,:)
character*50,allocatable::S(:)
integer,parameter::white=0,black=1,red=2,blue=3
character,parameter::cwhite='.',cblack='#'
read *,H,W
allocate(S(H))
allocate(mas(W,H),nuri(W,H))
read *,S
do i=1, H
do j=1,W
if(S(i)(j:j).eq.cwhite) then
mas(j,i) = white
else
mas(j,i) = black
end if
end do
end do
do hoffset=0, H/2
do woffset=0, W/2
if(hoffset.eq.0.and.woffset.eq.0) cycle
nuri = mas
do i=1,H-hoffset
do j=1,W-woffset
if(nuri(j,i).eq.black.and. &
nuri(j+woffset,i+hoffset).eq.black) then
nuri(j,i) = red
nuri(j+woffset,i+hoffset) = blue
end if
! print *,j,i
! call printer(nuri,H,W)
end do
end do
if(ANY(nuri.eq.black)) then
continue
else
print '(a)', "YES"
return
end if
end do
end do
print '(a)', "NO"
contains
subroutine printer(nuri, H, W)
integer,allocatable::nuri(:,:)
integer,parameter::white=0,black=1,red=2,blue=3
character,parameter::cwhite='.',cblack='#',cred='*',cblue='%'
integer::i,j,H,W
character::c
do i=1,H
do j=1,W
select case(nuri(j,i))
case(white)
c = cwhite
case(black)
c = cblack
case(red)
c = cred
case(blue)
c = cblue
end select
write (*,'(a)',advance='no') c
end do
write (*,*)
end do
end subroutine printer
end program main
jj