結果
問題 | No.914 Omiyage |
ユーザー |
![]() |
提出日時 | 2020-08-29 18:44:18 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 2,074 ms |
コンパイル使用メモリ | 175,472 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-14 17:36:49 |
合計ジャッジ時間 | 2,638 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; template<class T>istream&operator>>(istream&i,vector<T>&v){for(T&j:v)i>>j;return i;}template<class T>vector<T>&operator<<(vector<T>&v,const T&t){v.push_back(t);return v;} int main() { int n, m, k; cin >> n >> m >> k; vector<vector<bool>> dp(n + 1, vector<bool>(k + 1)); dp[0][0] = true; for(int i = 0; i < n; i++) { vector<int> a(m); cin >> a; for(int j = 0; j <= k; j++) { for(int t = 0; t < m; t++) { if(!dp[i][j] || j + a[t] > k)continue; dp[i+1][j+a[t]] = true; } } } int ans = -1; for(int i = 0; i <= k; i++) { if(dp[n][i])ans = k - i; } cout << ans << endl; }