結果
問題 | No.914 Omiyage |
ユーザー |
![]() |
提出日時 | 2019-10-25 21:29:06 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,000 bytes |
コンパイル時間 | 555 ms |
コンパイル使用メモリ | 69,504 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-24 16:23:10 |
合計ジャッジ時間 | 1,099 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include<cstdio>#include<cstdlib>#include<algorithm>#include<iostream>#include<queue>#include<vector>#include <bitset>#include <cmath>#include <limits>#include <iostream>using namespace std;#define INF 100000#define MAX 100000#define MOD 1000000007typedef long long ll;typedef pair<int,int> P;typedef pair< pair<int,int>, int> p;#define bit(n,k) ((n>>k)&1) /*nのk bit目*/int main(){int N,M,K;cin>>N>>M>>K;bool dp[20][550];int A[20][20];for(int i=0;i<N;i++){for(int j=0;j<M;j++) cin>>A[i][j];}for(int i=0;i<20;i++){for(int j=0;j<550;j++) dp[i][j]=false;}dp[0][0]=true;for(int i=0;i<N;i++){for(int j=0;j<=500;j++){if(dp[i][j]==false) continue;for(int k=0;k<M;k++){dp[i+1][j+A[i][k]]=true;}}}int ans=-1;for(int i=0;i<=K;i++){if(dp[N][i]) ans=i;}if(ans==-1) cout<<-1<<endl;else cout<<K-ans<<endl;}