結果
問題 | No.437 cwwゲーム |
ユーザー |
![]() |
提出日時 | 2017-03-18 01:46:19 |
言語 | Fortran (gFortran 14.2.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,329 bytes |
コンパイル時間 | 954 ms |
コンパイル使用メモリ | 33,920 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-12 08:42:54 |
合計ジャッジ時間 | 1,570 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 41 |
コンパイルメッセージ
Main.f90:54:30: 54 | write(cformat(5:9),'(i0)'),size(array) | 1 Warning: Legacy Extension: Comma before i/o item list at (1)
ソースコード
program main implicit none character*12::S integer::i,len,pmax integer*8,allocatable::N(:) read *,S len = LEN_TRIM(S) if(len.lt.3) then print '("0")' return end if allocate(N(len)) do i=1,len N(i) = ICHAR(S(i:i))-ICHAR('0') end do pmax = partmax(N) print '(i0)', pmax contains recursive function partmax(N) result(pmax) integer*8,intent(in) ::N(:) integer*8,allocatable::M(:) integer*8::cww,pmax,i,j,k,l,len pmax = 0 len = size(N) ! call aprinter(N) if (len .lt. 3) then return else do i=1,len-2 if(N(i).eq.0) cycle do j=i+1,len-1 if(N(i).eq.N(j)) cycle do k=j+1, len if(N(j).ne.N(k)) cycle cww = N(i)*100+N(j)*10+N(k) if(len.gt.5) then M = pack(N, (/(l.ne.i.and.l.ne.j.and.l.ne.k,l=1,len)/)) pmax = MAX(cww+partmax(M),pmax) else pmax = MAX(cww,pmax) end if end do end do end do endif end function partmax subroutine aprinter(array) integer*8::array(:) character*32::cformat='(i0, (1x,i0))' write(cformat(5:9),'(i0)'),size(array) write(*,cformat) array end subroutine aprinter end program main