问题标题: 酷町堂:5142紧急求助

0
1
已解决
郑金顺
郑金顺
中级光能
中级光能

5142紧急求助,求核心代码或者整体代码

郑金顺在2020-10-31 09:44:28追加了内容

题目详情

提交记录

问题反馈

 

5142   水龙头经验值:0

题目描述 Description

有一个开关,当按下开关后的 T 秒内会一直放水,放完自动停止。但如果在放水状态时,有人再次按下开关,那么从按下的那一刻起重新计时,接下来的 T 秒一直放水。 给出 n 个人按压开关的时刻,问总共流出多少水?

输入描述 Input Description

输入2行
第一行2个正整数n,T (n表示人数,T表示水龙头放水的时间)
第二行n个正整数 (表示每个人按压开关的时刻,数字之间用空格隔开)

输出描述 Output Description

输出1行
输出水龙头流水的总时间。(单位:秒)

样例输入 Sample Input

样例输入1: 2 4 0 3 样例输入2: 2 4 0 5

样例输出 Sample Output

样例输出1: 7 (样例解释:第一个人放水三秒钟后,第二个人再次按下开关,淋浴器又放水四秒钟,总共七秒钟。) 样例输出2: 8 (样例解释:第一个按压水龙头后4秒停止,第二人在第5秒再次按压还是流了4秒,4+4=8秒)

数据范围及提示 Data Size & Hint

【数据范围】
1≤n≤200,000
1≤T≤10^9
0≤t1<t2<t3<,…,<tn−1<tn≤10^9
T和每个ti都是整数


0
已采纳
被禁言 夏雨轩
夏雨轩
中级守护
中级守护

题目

夏雨轩在2020-10-31 09:53:05追加了内容

cin>>n>>T;
cin>>ts;
for(int i=2;i<=n;i++){
    cin>>t;
    if(t-T<ts)s+=t-ts;
    else s+=T;
    ts=t;
}
s+=T;

随便写的,不知道对不对

0
郑金顺
郑金顺
中级光能
中级光能

来人啊

@蔡亦辰

@龙舟 

@张恩泽 

@龙舟 

@邓犁

 

 

我要回答