luogu#P11272. 「Diligent-OI R1 B」DlgtArray

「Diligent-OI R1 B」DlgtArray

题目描述

现给定一个长为 nn 的序列 a1ana_1\sim a_n,其中 ai{0,1}a_i\in\{0,1\}

qq 次询问,每次给定 l,r,kl,r,k,要你更改一些位置上的数值(只能改为 0011)使得 i=lrai=k+i=lrai\sum\limits_{i=l}^ra_i=k+\prod\limits_{i=l}^ra_i。也就是说要让 alara_l\sim a_r 的和要恰好等于 alara_l\sim a_r 的乘积再加上 kk。你需要求出最少的修改次数。如果无解,输出 1-1

请注意每次的更改不会对后续询问产生影响。

输入格式

第一行输入 n,qn,q

接下来一行 nn 个整数 a1ana_1\sim a_n

接下来 qq 行,每行三个整数 l,r,kl,r,k

输出格式

输出 qq 行,每行一个整数表示最少的修改次数。如果无解请输出 -1

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

提示

样例 #1 解释

a={0,0,1,0,1}a=\{0,0,1,0,1\}

第一个询问只需将 a1a_1a2a_2 改为 11。此时和为 22,积为 00

第二个询问只需将 a3a_3 改为 00。此时和为 00,积为 00

第三个询问不需进行更改,和为 22,积为 00

第四个询问,因为只有一个数,所以和与积相等,所以不可能做到。

数据范围

对于 100%100\% 数据,1n,q1061\le n,q\le10^60k1060\le k\le10^61lrn1\le l\le r\le nai{0,1}a_i\in\{0,1\}

Subtask 编号 n,qn,q\le 特殊性质 分值
00 1010 1010
11 10310^3 A 77
22 BC
33 B 1313
44 C
55 2020
66 10510^5 B 99
77 C
88 10610^6 1212

特殊性质 A:k=nk=n

特殊性质 B:1in,ai=0\forall 1\le i\le n,a_i=0

特殊性质 C:k=0k=0