結果
問題 |
No.2329 Nafmo、イカサマをする
|
ユーザー |
|
提出日時 | 2023-05-29 15:44:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,221 bytes |
コンパイル時間 | 1,031 ms |
コンパイル使用メモリ | 92,608 KB |
実行使用メモリ | 146,048 KB |
最終ジャッジ日時 | 2024-12-28 09:54:59 |
合計ジャッジ時間 | 15,615 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 TLE * 3 |
ソースコード
#include<iostream> #include<set> #include<algorithm> #include<vector> #include<string> #include<set> #include<map> #include<numeric> #include<queue> #include<tuple> #include<cmath> using namespace std; typedef long long ll; const ll INF=1LL<<60; typedef pair<ll,int> P; typedef pair<int,P> PP; const ll MOD=998244353; int main(){ int N,M,K; cin>>N>>M>>K; //int maxA=-1; vector<int> A(N); for(int i=0;i<N;i++){ cin>>A[i]; //maxA=max(maxA,A[i]); } /* vector<vector<bool>> dp(M+1,vector<bool>(K+1,false)); dp[0][0]=true; for(int k=0;k<K;k++){ for(int p=0;p<=M;p++){ if(dp[p][k]){ for(int i=0;i<N;i++){ int to=p+A[i]; if(to<=M){ dp[] } } } } } */ set<ll> st; st.insert(0); for(int k=0;k<K;k++){ set<ll> nxst=st; for(int v:st){ for(int i=0;i<N;i++){ if(v+A[i]>M) continue; if(st.count(v+A[i])) continue; nxst.insert(v+A[i]); } } st=nxst; } cout<<*st.rbegin()<<endl; }