結果
| 問題 |
No.2986 Permutation Puzzle
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2025-01-01 00:53:53 |
| 言語 | Fortran (gFortran 14.2.0) |
| 結果 |
AC
|
| 実行時間 | 28 ms / 2,000 ms |
| コード長 | 1,274 bytes |
| コンパイル時間 | 467 ms |
| コンパイル使用メモリ | 35,976 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2025-01-01 00:53:59 |
| 合計ジャッジ時間 | 2,917 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 40 |
ソースコード
implicit none
integer :: n, k
integer, dimension(10,10) :: a, b
integer, dimension(4,10) :: p
integer, dimension(10) :: icol,irow,itmp,ct,cw
integer, dimension(4) :: ops
integer, dimension(1000) :: ans
integer :: r, c, i, j, t, op, e, anslen, z
read (*,*) n, k, ((a(r,c),c=1,n),r=1,n), ((b(r,c),c=1,n),r=1,n)
do e=1, (2*n)**k
icol(1:n) = (/ (i, i=1, n) /)
irow(1:n) = (/ (i, i=1, n) /)
t = e-1
do j=1, k
op = mod(t, 2*n) + 1
ops(j) = op
t = t / (2*n)
if ( op <= n ) then
p(j,1:n) = a(irow,icol(op))
do i=1, n
itmp(p(j,i)) = icol(i)
end do
icol(1:n) = itmp(1:n)
else
p(j,1:n) = a(irow(op-n),icol)
do i=1, n
itmp(p(j,i)) = irow(i)
end do
irow(1:n) = itmp(1:n)
end if
end do
if ( all (b(1:n,1:n) == a(irow(1:n),icol(1:n))) ) then
do j=k, 1, -1
op = ops(j)
z = mod(op-1, n)+1
cw(1:n) = p(j,1:n)
do
do i=1, n
ct(p(j,i)) = cw(i)
end do
if ( all (ct(1:n) == p(j,1:n)) ) then
exit
end if
z = p(j,z)
anslen = anslen + 1
ans(anslen) = z + ((op-1)/n)*n
cw(1:n) = ct(1:n)
end do
end do
print '(I0)', anslen
do i=1, anslen
op = ans(i)
if ( op <= n ) then
print '("C ",I0)', op
else
print '("R ",I0)', op-n
end if
end do
stop
end if
end do
end
ID 21712