题意
题目描述
给定一个序列,请求出相邻两个数之间(前数-后数)差的最大值与c的差。
如果结果小于0的话就输出0。
输入格式
第一行输入n和c。
接下来一行n个数字,描述整个序列。
输出格式
输出一行表示结果。
题解
直接膜你
直接按题意膜你即可。
可以不用数组存储,只要用两个变量last
表示上一个数,a
则表示当前输入的数。
可以一开始先读入last
,然后读入n-1次a
,逐次打擂比较出最大的last-a
,计入结果res
。
最后输出res-c
即可。
注意题意提醒你了res-c
\lt{0}时要输出0!
代码
#include<stdio.h>
#include<iostream>
int n,c,a,last,res;
int main()
{
scanf("%d%d%d",&n,&c,&last); //记得先读入第一个数last
while(--n) //while(--n)可以直接表示读入n-1次数据
{
scanf("%d",&a);
if(last-a>res) res=last-a; //比较出最大的last-a计入res
last=a; //滚动变量记录序列
}
printf("%d\n",std::max(res-c,0)); //输出res-c,注意res-c小于0时要输出0,此处可以用取最大值函数来特判
return 0;
}