题目描述:
很久很久以前有n株小秧苗排成一排,有一个农夫想让它们长得快一点,于是他每天会给一段连续的秧苗拔高某一个高度,现在问你最终每株秧苗的高度。
输入格式:
第一行输入一个整数n,表示秧苗的数量。
第二行输入n个数,表示每株秧苗的初始高度。
第三行输入一个整数m,表示农夫拔苗的天数。
接下来m行每行三个整数a,b,c,表示将第 a 株苗到第 b 株苗全部拔高 c 的高度。
输出格式:
输出一行,包含n个整数,以空格隔开,表示秧苗最终的高度。
样例输入:
4
1 2 3 4
3
1 2 1
2 3 1
4 4 1
样例输出:
2 4 4 5
约定:
1<=n,m<=100,1<=a,b<=n,1<=c<=1000,1<=秧苗初始高度<=100
代码如下:
#include <iostream>
using namespace std;
int main()
{
int p[100],i,j,n,m;
int a,b,c;
cin >> n;
for(i=0;i<n;i++)
cin >>p[i];
cin >> m;
for (i=0;i<m;i++)
{
cin >> a>>b>>c;
for(j=a-1;j<b;j++)
p[j] += c;
}
for(i=0;i<n;i++)
{
if(i<n-1)
cout << p[i] << " ";
else
cout << p[i];
}
return 0;
}
按照要求给对应数组元素加上高度值就可以了啊
#include <stdio.h>
int main()
{
int num[100];
int n,m,i,j,a,b,k;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&num[i]);
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&k);
for(j=a;j<=b;j++)
{
num[j-1]+=k;
}
}
for(i=0;i<n;i++)
printf("%d ",num[i]);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!