本文主要是介绍atcoder ABC 358-B题详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
atcoder ABC 358-B题详解
Problem Statement
At the entrance of AtCoder Land, there is a single ticket booth where visitors line up to purchase tickets one by one. The purchasing process takes A seconds per person. Once the person at the front of the line finishes purchasing their ticket, the next person (if any) immediately starts their purchasing process.
Currently, there is no one in line at the ticket booth, and N people will come to buy tickets one after another. Specifically, the i-th person will arrive at the ticket booth Ti seconds from now. If there is already a line, they will join the end of it; if not, they will start the purchasing process immediately. Here, T1<T2<⋯<TN.
For each i (1≤i≤N), determine how many seconds from now the i-th person will finish purchasing their ticket.
Constraints
1≤N≤100
0≤T1<T2<⋯<TN≤106
1≤A≤106
All input values are integers.
Input
The input is given from Standard Input in the following format:
N A
T1 T2 … TN
Output
Print N lines. The i-th line should contain the number of seconds from now that the i-th person will finish purchasing their ticket.
Sample Input 1
3 4
0 2 10
Sample Output 1
4
8
14
The events proceed in the following order:
At 0 seconds: The 1st person arrives at the ticket booth and starts the purchasing process.
At 2 seconds: The 2nd person arrives at the ticket booth and joins the line behind the 1st person.
At 4 seconds: The 1st person finishes purchasing their ticket, and the 2nd person starts the purchasing process.
At 8 seconds: The 2nd person finishes purchasing their ticket.
At 10 seconds: The 3rd person arrives at the ticket booth and starts the purchasing process.
At 14 seconds: The 3rd person finishes purchasing their ticket.
Sample Input 2
3 3
1 4 7
Sample Output 2
4
7
10
The events proceed in the following order:
At 1 second: The 1st person arrives at the ticket booth and starts the purchasing process.
At 4 seconds: The 1st person finishes purchasing their ticket, and the 2nd person arrives at the ticket booth and starts the purchasing process.
At 7 seconds: The 2nd person finishes purchasing their ticket, and the 3rd person arrives at the ticket booth and starts the purchasing process.
At 10 seconds: The 3rd person finishes purchasing their ticket.
Sample Input 3
10 50000
120190 165111 196897 456895 540000 552614 561627 743796 757613 991216
Sample Output 3
170190
220190
270190
506895
590000
640000
690000
793796
843796
1041216
思路分析:
本题需要求解每一个人需要的时间,a是解答问题的时间,需要求上一个人的时间加a和当前值加a取最大值,即可以求得每一个人的时间。
code:
#include <iostream>
#include <cmath>
using namespace std;
int n,a;
const int N=110;
int t[N];
int t1[N];//存答案
int main(){cin>>n>>a;for(int i=1;i<=n;i++){cin>>t[i];}t[0]=0;t[n+1]=0;//处理边界for(int i=1;i<=n;i++){t1[i]=max((t1[i-1]+a),(t[i]+a));}for(int i=1;i<=n;i++){cout<<t1[i]<<endl;}
}
这篇关于atcoder ABC 358-B题详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!