Submission #1100

#TimeUsernameProblemLanguageResultExecution timeMemory
1100leecs0503앱 (KOI13_app)C++98
21 / 21
872 ms79212 KiB
#include<stdio.h>

//FILE *input=freopen("input.txt","r",stdin);

#define MAX 20000001

int dp[MAX];
int a[101];
int b[101];

int main(){
	int n,m,i,j,maxi=0,r,mini;
	scanf("%d%d",&n,&m);

	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
		if(maxi<a[i])
			maxi=a[i];
	}
	for(i=0;i<n;i++){
		scanf("%d",&b[i]);
	}

	for(i=0;i<=m+maxi;i++){
		dp[i]=-1;
	}
	dp[0]=0;
	for(i=0;i<n;i++){
		for(j=m-1;j>=0;j--){
			if(dp[j]==-1)
				continue;
			r=dp[j]+b[i];
			if(dp[j+a[i]]>r||dp[j+a[i]]==-1){
				dp[j+a[i]]=r;
			}
		}
	}
	mini=100001;
	for(j=m;j<m+maxi;j++){
		if(dp[j]<mini&&dp[j]!=-1){
			mini=dp[j];
		}
	}
	printf("%d",mini);

	return 0;
}
#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...