2013年12月26日 星期四

[USACO] 3-1-3 Humble Numbers


/*
ID: 551100k1
LANG: C++
TASK: humble
*/
#include<stdio.h>
long long int dp[100005]={0},r[105]={0},s[105],x;
int main(){
    freopen("humble.in","r",stdin);
    freopen("humble.out","w",stdout);
    int i,j,n,m;
    scanf("%d%d",&m,&n);
    for(i=0;i<m;i++)
        scanf("%lld",&s[i]);
    dp[0]=1;
    for(i=1;i<=n;i++){
        x=1LL<<60;
        for(j=0;j<m;j++){
            for(;dp[r[j]]*s[j]<=dp[i-1];r[j]++);
            if(dp[r[j]]*s[j]<x) x=dp[r[j]]*s[j];
        }
        dp[i]=x;
    }
    printf("%lld\n",dp[n]);
}

沒有留言:

張貼留言