結果
| 問題 | No.5 数字のブロック |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-05 17:13:13 |
| 言語 | Fortran (gFortran 15.2.0) |
| 結果 |
AC
|
| 実行時間 | 199 ms / 5,000 ms |
| コード長 | 819 bytes |
| 記録 | |
| コンパイル時間 | 1,243 ms |
| コンパイル使用メモリ | 40,432 KB |
| 実行使用メモリ | 7,716 KB |
| 最終ジャッジ日時 | 2026-03-05 17:13:32 |
| 合計ジャッジ時間 | 3,343 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 34 |
ソースコード
PROGRAM MAIN
IMPLICIT NONE
INTEGER :: L, N, I, J, TMP, COUNT = 0, WIDTH = 0
INTEGER, ALLOCATABLE :: W(:)
READ *, L
READ *, N
ALLOCATE(W(N))
READ *, W(:)
! 小さいものから順番に入れていけばよいのでは?
! そうでもないのかしら
! とりあえずソートする。
DO I = 0, N - 1
DO J = 1, N - 1 - I
IF (W(J) > W(J + 1)) THEN
TMP = W(J+1)
W(J+1) = W(J)
W(J) = TMP
END IF
END DO
END DO
! PRINT *, W(:)
DO WHILE (WIDTH <= L .AND. COUNT < N)
IF (WIDTH + W(COUNT + 1) <= L) THEN
COUNT = COUNT + 1
WIDTH = WIDTH + W(COUNT)
ELSE
EXIT
END IF
END DO
PRINT *, COUNT
END PROGRAM MAIN