結果
| 問題 | No.101 ぐるぐる!あみだくじ! |
| コンテスト | |
| ユーザー |
jj
|
| 提出日時 | 2016-12-14 22:57:59 |
| 言語 | Fortran (gFortran 14.2.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,053 bytes |
| コンパイル時間 | 1,598 ms |
| コンパイル使用メモリ | 32,256 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-30 07:42:01 |
| 合計ジャッジ時間 | 1,251 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 37 |
ソースコード
program main
implicit none
type pair
integer::x,y
end type pair
integer::N,K,i,j,tmp, shuffle=1
integer::num(100)=(/(i,i=1,100)/)
integer::group(100)
type(pair)::bar(1000)
data group/100*0/
read *,N,K
if(K.eq.0) then
print '(i0)', 1
return
else
read *,bar(1:K)
end if
! print *, bar(1:K)
do i=1,K
tmp = num(bar(i)%x)
num(bar(i)%x) = num(bar(i)%y)
num(bar(i)%y) = tmp
end do
do i=1,N
if(group(i).eq.0) then
j = 0
tmp = i
do
tmp = num(tmp)
group(tmp) = 1
j = j + 1
if(tmp.eq.i) exit
end do
shuffle = lcm(shuffle, j)
end if
end do
print '(i0)', shuffle
! print '(i0," ")',(num(i),i=1,N)
contains
function lcm(a,b) result(c)
integer,intent(in)::a,b
integer::c
c = (a*b)/gcd(a,b)
end function lcm
recursive function gcd(a,b) result(c)
integer::a,b,c
if(b.eq.0) then
c = a
else
c = gcd(b,MOD(a,b))
end if
end function gcd
end program main
jj