第四题:
给定一个长度为 n 的数组,每次操作可以将数组中不超过 k 个连续的数同时减一。
问最少需要多少次操作,才能让每个数都小于等于 0。
输入格式
第一行输入两个空格分隔的整数 n(1 ≤ n ≤ 100), K(1 ≤ K ≤ n)
第二行输入 n 个用空格分隔的整数 ai(-1000 ≤ ai ≤1000)
输出格式
输出一个整数,表示需要的最少操作次数
样例输入
4 3
1 2 3 4
样例输出
5
#include <iostream>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
int a[100];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int sum=0;
for(int i=0;i<n;i++)
{
sum=sum+a[i]; //累加计算次数
for(int j=i+1;j<i+k;j++)
{
if(a[i]>0) //减去第一个不为0的数
a[j]=a[j]-a[i];
}
}
a[i] = 0;
cout<<sum<<endl;
return 0;
}