给定一个由 � n 个整数构成的序列 � 1 , � 2 , … , � � a 1 ,a 2 ,…,a n ,你需要对它进行如下操作: 输入格式 1 x y,表示把所有 � � � a kx ( � k 为正整数, � � ≤ � kx≤n)都加上 � y。 输入格式 2 x y,表示把所有 � � � a kx ( � k 为正整数, � � ≤ � kx≤n)都减去 � y。 输入格式 3 j,表示输出 � � a j 。
时间: 2023-12-19 15:07:55 浏览: 364
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
这个问题可以使用数组来存储序列,然后根据输入的不同操作进行修改或输出。具体实现如下:
```python
n = int(input())
a = list(map(int, input().split()))
while True:
op = input().split()
if op[0] == '1':
x, y = map(int, op[1:])
for i in range(1, n+1):
if i % x == 0:
a[i-1] += y
elif op[0] == '2':
x, y = map(int, op[1:])
for i in range(1, n+1):
if i % x == 0:
a[i-1] -= y
elif op[0] == '3':
j = int(op[1])
print(a[j-1])
else:
break
```
其中,`a` 是存储序列的数组,`op` 是输入的操作,`op[0]` 表示操作类型。如果是操作类型为 1,表示加上某个数,就遍历整个序列,找到对应位置进行修改;如果是操作类型为 2,表示减去某个数,同样也要遍历整个序列进行修改;如果是操作类型为 3,表示输出某个位置的数,直接输出即可。当输入不再是操作时,退出循环。
阅读全文