温度波动记录
每天记录温度,支持区间温度调整和单日查询
输入:
第一行:一个整数n表示有n个温度
第二行:n个数表示具体温度
第三行:三个整数:S,e,c,表示从s天到e天,温度变化为c
第四行:整数m,表示查询第m天的温度
输入:初始温度[20,22,21,19]
操作:第1-3天升温2度
查询:第3天温度→输出23
cpp
#include<iostream>
using namespace std;
int main()
{
int a[1000];
int b[1000];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int l,r,p;
cin>>l>>r>>p;
b[l] = b[l]+p;
b[r+1] = b[r+1]-p;
a[0] = b[0];
for(int i = 1;i<n;i++)
{
a[i] = a[i-1] + b[i];
}
int m;
cin>>m;
cout<<a[m-1];
return 0;
}
学生成绩调整
全班成绩初始为0,操作:
输入:
第一行:一个整数n表示有n个同学
第二行:m表示有m次操作
之后m行:每行三个整数:s,e,c,表示从s学生到e学生,分数变化为c
输出:全体同学的成绩
cpp
#include<iostream>
using namespace std;
int main()
{
int b[1000]={0};
int n;
cin>>n;
int m;
cin>>m;
while(m--)
{
int s,e,p;
cin>>s>>e>>p;
b[s] = b[s] + p;
b[e+1] = b[e+1] - p;
}
for(int i = 1;i<=n;i++)
{
b[i] = b[i] + b[i-1];
}
for(int i = 1;i<=n;i++)
{
cout<<b[i]<<" ";
}
return 0;
}