結果
| 問題 |
No.690 E869120 and Constructing Array 4
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-05-19 16:14:23 |
| 言語 | Fortran (gFortran 14.2.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 1,218 bytes |
| コンパイル時間 | 203 ms |
| コンパイル使用メモリ | 33,588 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-28 14:23:43 |
| 合計ジャッジ時間 | 1,178 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
program main
implicit none
integer(kind=8)::K,M=0,src=1,dst=32,addV=31,c=0
integer::i,j
logical::g(32,32)
read*,K
if(K==0)then
print*,"32 0"
return
end if
do i=1,32
do j=1,32
g(i,j)=.false.
end do
end do
do while(lshift(1,c+1)<=K)
c=c+1
end do
do i=1,32
do j=i+1,32
if(i/=src.and.i/=dst.and..not.(src<i.and.i<=src+c))cycle
if(j/=src.and.j/=dst.and..not.(src<j.and.j<=src+c))cycle
g(i,j)=.true.
M=M+1
end do
end do
K=K-lshift(1,c)
if(K>0)then
g(addV,dst)=.true.
M=M+1
do i=src+c,src,-1
if(K==0)exit
if (K-lshift(1,i-src-1)>= 0)then
K=K-lshift(1,i-src-1)
g(i,addV)=.true.
M=M+1
end if
end do
end if
print*,32," ",M
do i=1,32
do j=i+1,32
if(g(i,j))print*,i,j
end do
end do
! do i=1,32
! check(i)=0
! end do
! check(1)=1
! do i=1,32
! do j=i+1,32
! if(g(i,j))check(j)=check(j)+check(i)
! end do
! end do
! print*,check(dst)
end program