比赛 普及组2016模拟练习4 评测结果 AAAAAAW
题目名称 最小乘车费用 最终得分 85
用户昵称 suchuanzhi 运行时间 0.001 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2016-11-17 20:43:31
显示代码纯文本
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int min(int a,int b){
	if(a>b) return b;
	else return a;
} 
int r[1000]={0};
void dp(int v[],int n){
 r[0]=0;
 int q;
 for(int i=1;i<=n;i++){
 	q=999999;
 	for(int j=1;j<=i;j++){
 		q=min(q,r[i-j]+v[j]);
	 }
 r[i]=q;
 }
}
int main(){
	int b,i,v[10000],z,n;
	freopen("busses.in","r",stdin);
	freopen("busses.out","w",stdout);
	for(i=1;i<=10;i++){
	scanf("%d",&v[i]);
	}
	scanf("%d",&n);
	dp(v,10);
	//printf("%d %d\n",n/10*r[10],r[n%10]);
	if(n>10){
		z=n/10*r[10]+r[n%10];
	}
	else {
		z=r[n];
	}
	printf("%d",z);
	return 0;
}