兴奋的桐桐

桐桐上高中了。她在妈妈的魔鬼训练下,成为了一个神牛,每次参加一次OI比赛必拿金牌虐全场。每次她拿到一个金牌后就很兴奋。假设桐桐不会因为其它事兴奋,并且她的兴奋会持续T天(包含获奖当天。就算在兴奋的时候再次拿到金牌,他的兴奋也只能维持包括这次拿奖之日起T天,而不是额外增加T天的兴奋时间,除非之后再拿奖)。请你帮忙检查一下桐桐接下来的日程安排,要参加N场比赛,看看接下来的几天,桐桐会累计兴奋多久?

输入格式

第一行两个整数N和T。
接下来一行,N个单调递增整数ti,表示她在第ti天的时候拿了一个金牌。

输出格式

一个整数表示,桐桐累计兴奋多久。

输入/输出例子1

输入:

3 5
1 2 10

输出:

11

说明

1<=N<=200000
,ti单调递增。

思路

题目已经说明 “ 就算在兴奋的时候再次拿到金牌,他的兴奋也只能维持包括这次拿奖之日起T天,而不是额外增加T天的兴奋时间,除非之后再拿奖 ” 所以我们不能直接用 N 的个数乘 5 ,我们只能一个一个的去加(注意:要用 long long ,因为 “ 1<=T,ti<=10^9 ”)

#include<bits/stdc++.h>
using namespace std;
long long n,m,z,sum=0,x=0;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>z;
        if(z<=x) sum+=z+m-1-x,x=z+m-1;
        else sum+=m,x=z+m-1;        
    }
    printf("%lld\n",sum);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值