#CSES2206. 披萨店查询

    ID: 273 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数据结构线段树前后缀最小值CSES结构体

披萨店查询

题目背景

翻译自 CSES-2206 题。

题目描述

街道上有 nn 栋建筑,编号为 1,2,,n1,2,\ldots,n。每栋建筑都有一个披萨店和一间公寓。

kk 栋建筑的披萨价格为 pkp_k。如果你从建筑 aa 订购披萨送到建筑 bb,其价格(包括配送费用)为 pa+abp_a+|a-b|,其中 ab|a-b| 是建筑 aa 到建筑 bb 的距离。

你的任务是处理两种类型的查询:

  1. 更新建筑 kk 的披萨价格为 xx
  2. 你在建筑 kk 并想订购披萨,询问最低的披萨价格是多少。

输入格式

第一行包含两个整数 nnqq:分别表示建筑的数量和查询的数量。

第二行包含 nn 个整数 p1,p2,,pnp_1,p_2,\ldots,p_n:表示每栋建筑初始的披萨价格。

接下来有 qq 行描述查询。每一行是以下两种之一:

  • 1 k x:将建筑 kk 的披萨价格更新为 xx
  • 2 k:你在建筑 kk,询问从建筑 kk 订购披萨的最低价格。

输出格式

对于每个查询类型为 2 的查询,输出一个整数,即从建筑 kk 订购披萨的最低价格。

样例

6 3
8 6 4 5 7 5
2 2
1 5 1
2 2
5
4

数据范围

  • 1n,q21051 \le n,q \le 2 \cdot 10^5
  • 1pi,x1091 \le p_i,x \le 10^9
  • 1kn1 \le k \le n