链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1260
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/A
题目大意:
Joe 是卖电影票的,现在他想要早点回家,买个买电影票的都会话费一个时间,他可以自己买也可以和相邻的一块买,问花费的最少时间。
输入数据:
第一行是一个T代表T组测试数据
第二行是一个n代表有n个人。
第三行有n个数字代表每个人单独买票所花费的时间
第四行有 n-1 个数,代表和相邻的一块买花费的时间。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; #define N 2005 int main ()
{
int t;
scanf("%d", &t);
while(t--)
{
int i, n, a[N]={}, b[N]={}, dp[N]={}, flag=; scanf("%d", &n); for(i=; i<=n; i++)
scanf("%d", &a[i]);
for(i=; i<=n; i++)
scanf("%d", &b[i]); dp[] = a[];
dp[] = min(a[]+a[], b[]); for(i=; i<=n; i++)
dp[i] = min(dp[i-]+a[i], dp[i-]+b[i]); int h=, m, s; h += dp[n]/;
m = dp[n]/%;
s = dp[n]%; if(h>)
{
flag = ;
h -= ;
} printf("%02d:%02d:%02d ", h, m, s); if(flag)
printf("pm\n");
else
printf("am\n"); }
return ;
}