链接:
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]={0}, b[N]={0}, dp[N]={0}, flag=0; scanf("%d", &n); for(i=1; i<=n; i++) scanf("%d", &a[i]); for(i=2; i<=n; i++) scanf("%d", &b[i]); dp[1] = a[1]; dp[2] = min(a[1]+a[2], b[2]); for(i=3; i<=n; i++) dp[i] = min(dp[i-1]+a[i], dp[i-2]+b[i]); int h=8, m, s; h += dp[n]/3600; m = dp[n]/60%60; s = dp[n]%60; if(h>12) { flag = 1; h -= 12; } printf("%02d:%02d:%02d ", h, m, s); if(flag) printf("pm\n"); else printf("am\n"); } return 0; }
勿忘初心