結果
問題 |
No.54 Happy Hallowe'en
|
ユーザー |
|
提出日時 | 2017-03-17 13:22:41 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 674 bytes |
コンパイル時間 | 1,529 ms |
コンパイル使用メモリ | 164,452 KB |
実行使用メモリ | 395,520 KB |
最終ジャッジ日時 | 2024-07-04 13:41:11 |
合計ジャッジ時間 | 18,810 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 WA * 2 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define REP(i,n) for (int i=0;i<(n);i++) int N, T_MAX; vector<pair<int, int> > VT; int mem[10010][10010]; int dp(int n, int v) { if (n >= N) return v; if (v >= T_MAX) return v; if (mem[n][v] >= 0) return mem[n][v]; if (v >= VT[n].first) return mem[n][v] = dp(n+1, v); else return mem[n][v] = max(dp(n+1, v), dp(n+1, v+VT[n].second)); } int main() { cin >> N; REP(i, N) { int v, t; cin >> v >> t; VT.push_back(make_pair(t, v)); } sort(VT.begin(), VT.end()); T_MAX = VT[N-1].first; REP(i, 10010) REP(j, 10010) mem[i][j] = -1; cout << dp(0, 0) << endl; }