結果
| 問題 |
No.158 奇妙なお使い
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2017-09-23 08:16:35 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 244 ms / 5,000 ms |
| コード長 | 1,347 bytes |
| コンパイル時間 | 3,365 ms |
| コンパイル使用メモリ | 66,168 KB |
| 実行使用メモリ | 73,728 KB |
| 最終ジャッジ日時 | 2024-06-30 03:13:17 |
| 合計ジャッジ時間 | 9,311 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 27 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 26) Warning: imported and not used: 'math' [UnusedImport]
ソースコード
import sequtils,strutils,math
var
A = stdin.readline.split.map(parseInt)
B = stdin.readline.parseInt
C = stdin.readline.split.map(parseInt)
D = stdin.readline.parseInt
E = stdin.readline.split.map(parseInt)
dp : array[10010, array[11, array[101, int]]]
As = A[0] * 1000 + A[1] * 100 + A[2]
for i in 1..As:
for j in 0..10:
var
b1000 = B div 1000
d1000 = D div 1000
b1000 = min(b1000, j)
d1000 = min(d1000, j)
for k in 0..100:
var
m = i - j * 1000 - k * 100
if i >= B:
var
b100 = min((B - b1000 * 1000) div 100, k)
b = B - b100 * 100 - b1000 * 1000
if b <= m:
dp[i][j][k] =
max(dp[i][j][k],
dp[i - B + C[0] * 1000 + C[1] * 100 + C[2]][j + C[0] - b1000][k + C[1] - b100] + 1)
if i >= D:
var
d100 = min((D - d1000 * 1000) div 100, k)
d = D - d100 * 100 - d1000 * 1000
if d <= m:
dp[i][j][k] =
max(dp[i][j][k],
dp[i - D + E[0] * 1000 + E[1] * 100 + E[2]][j + E[0] - d1000][k + E[1] - d100] + 1)
echo dp[As][A[0]][A[1]]
6soukiti29