Submission #1836

#TimeUsernameProblemLanguageResultExecution timeMemory
1836alephnull앱 (KOI13_app)C++98
21 / 21
12 ms8900 KiB
#include <cstdio> #include <cstring> #include <algorithm> #define INF 7654321 using namespace std; int n,m; int a[100],c[100]; long long cache[100][10001]; int dp(int idx,int value){ if(value<0)return -INF; if(idx<0)return 0; if(cache[idx][value]!=-1)return cache[idx][value]; long long &ret=cache[idx][value]; return ret=max(dp(idx-1,value),dp(idx-1,value-c[idx])+a[idx]); } int main(){ scanf("%d %d",&n,&m); for(int i=0;i<n;i++)scanf("%d",a+i); for(int i=0;i<n;i++)scanf("%d",c+i); memset(cache,-1,sizeof(cache)); int sum=0; for(int i=0;i<n;i++)sum+=c[i]; for(int i=0;i<n;i++) for(int j=0;j<sum;j++) dp(i,j); int ans=INF; for(int i=0;i<n;i++) for(int j=0;j<sum;j++) if(cache[i][j]>=m) if(ans>j)ans=j; printf("%d",ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...