結果
| 問題 | No.527 ナップサック容量問題 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-04-10 22:39:25 | 
| 言語 | Fortran (gFortran 14.2.0) | 
| 結果 | 
                                WA
                                 
                            (最新) 
                                AC
                                 
                            (最初) | 
| 実行時間 | - | 
| コード長 | 644 bytes | 
| コンパイル時間 | 352 ms | 
| コンパイル使用メモリ | 32,512 KB | 
| 実行使用メモリ | 5,376 KB | 
| 最終ジャッジ日時 | 2024-06-26 21:02:29 | 
| 合計ジャッジ時間 | 1,564 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 WA * 2 | 
| other | AC * 25 WA * 12 | 
コンパイルメッセージ
Main.f90:12:10:
   11 |     do i=0,size(g)
      |                  2
   12 |         g(i)=0
      |          1
Warning: Array reference at (1) out of bounds (100001 > 100000) in loop beginning at (2)
Main.f90:12:14:
   12 |         g(i)=0
      |              ^
Warning: iteration 100001 invokes undefined behavior [-Waggressive-loop-optimizations]
Main.f90:11:9:
   11 |     do i=0,size(g)
      |         ^
note: within this loop
            
            ソースコード
program main
    implicit none
    integer::n,m,i,j,k,v(100),w(100),valTarget,valMax=0,ma=-1,mi=1000000
    integer::g(0:100000)
    read*,n
    do i=1,n
        read(*,*)v(i),w(i)
        valMax=valMax+v(i)
    end do
    read*,valTarget
    do i=0,size(g)
        g(i)=0
    end do
    do i=1,n
        do j=100000-w(i),0,-1
            g(j+w(i))=max(g(j+w(i)),g(j)+v(i))
        end do
    end do
    do i=1,size(g)-1
        if(g(i)==valTarget)then
            mi=min(mi,i)
            ma=max(ma,i)
        end if
    end do
    print*,mi
    if(valMax==valTarget)then
        print*,"inf"
    else
        print*,ma
    end if
end program
            
            
            
        