您的位置:首页 > 其它

HDU【1260】Tickets

2016-03-20 18:00 274 查看

Tickets

[b]Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 2434 Accepted Submission(s): 1191

[/b]

[align=left]Problem Description[/align]
Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff time for Joe who sells the film tickets. He is wandering when could he go back home as early as possible.

A good approach, reducing the total time of tickets selling, is let adjacent people buy tickets together. As the restriction of the Ticket Seller Machine, Joe can sell a single ticket or two adjacent tickets at a time.

Since you are the great JESUS, you know exactly how much time needed for every person to buy a single ticket or two tickets for him/her. Could you so kind to tell poor Joe at what time could he go back home as early as possible? If so, I guess Joe would full
of appreciation for your help.

[align=left]Input[/align]
There are N(1<=N<=10) different scenarios, each scenario consists of 3 lines:

1) An integer K(1<=K<=2000) representing the total number of people;

2) K integer numbers(0s<=Si<=25s) representing the time consumed to buy a ticket for each person;

3) (K-1) integer numbers(0s<=Di<=50s) representing the time needed for two adjacent people to buy two tickets together.

[align=left]Output[/align]
For every scenario, please tell Joe at what time could he go back home as early as possible. Every day Joe started his work at 08:00:00 am. The format of time is HH:MM:SS am|pm.

[align=left]Sample Input[/align]

2
2
20 25
40
1
8


[align=left]Sample Output[/align]

08:00:40 am
08:00:08 am


[align=left]Source[/align]
浙江工业大学第四届大学生程序设计竞赛

[align=left]Recommend[/align]
JGShining | We have carefully selected several similar problems for you: 1257 1160 1074 1159 1114

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 2005;
int a[maxn],b[maxn],dp[maxn];//dp[i]表示前i个人买票所需要的最少时间

int main()
{
int T,n;
scanf("%d",&T);
while( T-- )
{
scanf("%d",&n);
for(int i = 1; i <= n; i++)
scanf("%d",&a[i]);
for(int i = 2; i <= n; i++)
scanf("%d",&b[i]);
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]+b[i]);
int h,m,s;
h = dp
/3600 + 8;
m = dp
%3600/60;
s = dp
%3600%60;
if(h < 12)
printf("%02d:%02d%:%02d am\n",h,m,s);
else
printf("%02d:%02d%:%02d pm\n",h,m,s);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: