結果

問題 No.232 めぐるはめぐる (2)
ユーザー jjjj
提出日時 2017-01-26 23:15:20
言語 Fortran
(gFortran 14.2.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 2,193 bytes
コンパイル時間 1,153 ms
コンパイル使用メモリ 20,352 KB
最終ジャッジ日時 2024-09-14 12:44:09
合計ジャッジ時間 1,526 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Main.f90:51:16:

   51 |         print *,
      |                1
Error: Comma after * at (1) not allowed without I/O list
Main.f90:61:16:

   61 |         print *,
      |                1
Error: Comma after * at (1) not allowed without I/O list
Main.f90:83:16:

   83 |         print *,
      |                1
Error: Comma after * at (1) not allowed without I/O list

ソースコード

diff #

program main
  implicit none
  integer::T,A,B,i
  integer::maxab,up
  read *,T,A,B
  maxab = MAX(A,B)
  if(T.lt.maxab) then
     print '(a)', "NO"
     return
  else if(A.eq.0.and.B.eq.0) then
     if(T.eq.1) then
        print '(a)', "NO"
     else if(MOD(T,2).eq.0) then
        print '(a)', "YES"
        do i=1,T/2
           print '(a)',">"
           print '(a)',"<"
        end do
     else
        print '(a)', "YES"
        do i=1,(T-3)/2
           print '(a)',">"
           print '(a)',"<"
        end do
        print '(a)',">"
        print '(a)',"^"
        print '(a)',"<v"
     end if
     return
  else if(A.eq.1.and.B.eq.1) then
     print '(a)', "YES"
     if(MOD(T,2).eq.1) then
        do i=1,(T-1)/2
           print '(a)',">"
           print '(a)',"<"
        end do
        print '(a)',"^>"
     else
        do i=1,(T-2)/2
           print '(a)',">"
           print '(a)',"<"
        end do
        print '(a)',">"
        print '(a)',"^"
     end if
  else if(T.eq.maxab) then
     print '(a)', "YES"
     do i=1,maxab
        if(A.gt.0) write(*,'(a)',advance='no') "^"
        if(B.gt.0) write(*,'(a)',advance='no') ">"
        print *,
        A = A - 1
        B = B - 1
     end do
     return
  else if(MOD(T,2).eq.MOD(maxab,2)) then
     print '(a)', "YES"
     do i=1,maxab
        if(A.gt.0) write(*,'(a)',advance='no') "^"
        if(B.gt.0) write(*,'(a)',advance='no') ">"
        print *,
        A = A - 1
        B = B - 1
     end do
     do i=1,(T-maxab)/2
        print '(a)', ">"
        print '(a)', "<"
     end do
     return
  else
     print '(a)', "YES"
     if(A.gt.B) then
        A = A - 1
        up = 1
     else
        B = B - 1
        up = 0
     endif
     maxab = MAX(A,B)
     do i=1,maxab
        if(A.gt.0) write(*,'(a)',advance='no') "^"
        if(B.gt.0) write(*,'(a)',advance='no') ">"
        print *,
        A = A - 1
        B = B - 1
     end do

     do i=1,(T-1-maxab)/2
        print '(a)', ">"
        print '(a)', "<"
     end do

     if(up.eq.1) then
        print '(a)', ">"
        print '(a)', "<^"
     else
        print '(a)', "^"
        print '(a)', "v>"
     endif
     return
  end if
end program main
0