http://acm.hdu.edu.cn/showproblem.php?pid=1260
#include <bits/stdc++.h>
#define maxs 2020202
#define mme(i,j) memset(i,j,sizeof(i))
using namespace std;
long long dp[maxs];
int a[maxs],dou[maxs];
int main()
{
int t;
scanf("%d",&t);
int hh,mm,ss;
while(t--){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=2;i<=n;i++) scanf("%d",&dou[i-1]);
mme(dp,0xffffffffff);
dp[0]=0;
dp[1]=a[1];
for(int i=2;i<=n;i++)
{
dp[i] = min(dp[i-1]+a[i],dp[i-2]+dou[i-1]);
}
hh = dp[n]/3600;
mm = dp[n]%3600/60;
ss = dp[n]%60;
printf("%02d:%02d:%02d%s\n", (8+hh)%24, mm, ss, (hh+8)%24>12?" pm":" am");
}
return 0;
}