結果
問題 | No.375 立方体のN等分 (1) |
ユーザー |
![]() |
提出日時 | 2016-08-03 23:07:12 |
言語 | Fortran (gFortran 14.2.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,513 bytes |
コンパイル時間 | 1,496 ms |
コンパイル使用メモリ | 32,768 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 23:45:59 |
合計ジャッジ時間 | 2,750 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 WA * 7 |
ソースコード
subroutine sub(num,insuu,beki)implicit noneinteger*8::num,beki,tmpinteger*8,intent(in)::insuubeki = 1tmp = insuudo while(MOD(num,tmp).eq.0)beki = beki + 1tmp = tmp * insuuend donum = num*insuu/tmpbeki = beki-1returnend subroutine subsubroutine bunkai(N, vinsuu, vbeki)integer*8::N,i,j,indx,fsrinteger*8::vinsuu(15),vbeki(15)integer*8::num,insuu,bekiinteger*8,allocatable::furui(:)fsr = FLOOR(sqrt(REAL(N)))allocate(furui(fsr))furui = 0indx = 1num = Ndo i=2, fsrif(furui(i).eq.1) cycleif(MOD(num,i).ne.0) cycleinsuu = icall sub(num,insuu,beki)vinsuu(indx) = insuuvbeki (indx) = bekiindx = indx + 1if(num.eq.1) exitdo j=i+i,MIN(i*i,fsr),ifurui(j) = 1end doend doif(num.ne.1) thenvinsuu(indx) = numvbeki(indx) = 1end ifend subroutine bunkaiprogram mainimplicit noneinteger*8::N,i,jinteger,parameter::limit=15integer*8::vinsuu(limit),vbeki(limit)integer*8::a,b,c,minimumdata vinsuu/limit*0/,vbeki/limit*0/data a,b,c/3*1/read *,Ncall bunkai(N,vinsuu, vbeki)do i = 15,1,-1if(vinsuu(i).eq.0) cycledo j=1,vbeki(i)minimum = MIN(a,(MIN(b,c)))if(minimum.eq.a) thena = a * vinsuu(i)else if(minimum.eq.b) thenb = b * vinsuu(i)elsec = c * vinsuu(i)end ifend doend doprint '(i0," ",i0)', a+b+c-3,N-1end program main