#23. BAJ-Bytecomputer - Hard

BAJ-Bytecomputer - Hard

题目描述

给定一个由集合 {1,0,1}\{-1, 0, 1\} 中的 nn 个整数 x1,x2,,xnx_1, x_2, \cdots, x_n 组成的序列。字节计算机是一种允许对序列进行以下操作的设备:对于任何 1i<n1 \leq i < n,可以将 xi+1x_{i+1} 改为 xi+1+xix_{i+1} + x_i。字节计算机可以存储的整数范围没有限制,即每个 xix_i 可以(原则上)具有任意小或大的值。

题目给定 qq 个操作。每个操作先给定一个 opopopop00: 再输入两个数 x,yx, y ,将 xi=yx_{i} = yy{1,0,1}y \in \{-1, 0, 1\}

opop11: 编程实现字节计算机,使其将输入序列转换为非递减序列(即 x1x2xnx_1 \leq x_2 \leq \cdots \leq x_n),并使操作次数最少,输出这个操作次数。

输入格式

标准输入的第一行包含两个整数 nnqq (1n,q1000001 \leq n, q \leq 100000) 表示(字节计算机的)输入序列中的元素个数。

第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \cdots, x_n (xi{1,0,1}x_i \in \{-1, 0, 1\}),它们是(字节计算机的)输入序列的连续元素,元素之间用单个空格分隔。

接下来 qq 行,每行是 opop,当 opop00 时,每行有三个数,表示 op,x,yop, x, y

输出格式

标准输出的对应每一个 op=1op=1 应输出一个整数,即字节计算机必须执行的最小操作次数,以使其输入序列成为非递减序列;如果无法获得这样的序列,则输出单词 BRAK(波兰语,意为“无”)。

输入输出样例 #1

输入 #1

6 6
-1 1 0 -1 0 1
1
0 3 1
1
0 1 0
0 2 -1
1

输出 #1

3
3
BRAK