#1443. 函数的重载
函数的重载
Background
函数重载定义
- 函数名相同,但是参数类型或者参数个数不同的两个函数叫做函数重载
函数重载判断标准
- 函数的参数个数、参数类型、参数顺序不同三者中满足其中一个,就是函数重载了
- 如果只有函数返回值不同,不是函数重载;返回值不同,参数也不同的时候,可以作为函数重载
例如实现一个求绝对值的函数,若是 int
类型就返回 int
类型的,若是 double
的就返回 double
的。
int calc(int a)
{
if (a >= 0) return a;
return -a;
}
double calc(double a)
{
if (a >= 0) return a;
return -a;
}
Description
输入一个数列 ,有 次修改。每种修改分为两种类型:
- 单点修改:只对某一个位置的数值增加某一个固定的值
- 区间修改:对某一个连续区间内的数字都重新设置为
请你使用函数重载来尝试。
Format
Input
第一行输入两个数字 和 。
接下来一行 个空格隔开的数字代表 初始的数字。
接下来 行每行的输入格式如下:
先输入一个数字 ,若 代表第一种修改,此时会在输入两个数字 意思为让 。
若 代表第二种修改,此时会输入三个数字 意思让 的值都变成 。
1 i c
2 l r c
Output
在所有的操作结束后。打印整个序列,相邻两个数字用空格隔开。
Samples
5 3
1 2 3 4 5
1 2 3
2 1 5 10
1 1 3
13 10 10 10 10
Sample 1 explain
一共操作三次,初始序列 a = [1, 2, 3, 4, 5]
- 第一次,让 ,序列
a = [1, 5, 3, 4, 5]
- 第二次,让 都变为 ,序列
a = [10, 10, 10, 10, 10]
- 第三次,让 ,序列
a = [13, 10, 10, 10, 10]
Limitation
$1\leq n,q\leq 10^3,op\in (1,2),1\leq i\leq n,1\leq l\leq r\leq n,1\leq c\leq 10^3$