该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

拾柒的元旦封条

题目背景

2025 年的最后一天,拾柒在街角摆了一排烟花,准备迎接 2026 年的元旦。

为了“年味儿”,拾柒给每串烟花贴了一个编号 aia_i。但这些编号并不是普通的数字:它们会经历一种奇怪的“压岁合并仪式”。更怪的是,店家扎绳成“束”的方式也依赖这套仪式。

“新的一年,要学会把复杂的东西压缩成简单的样子。”拾柒一边贴封条一边念叨。

于是它设计了如下规则,并抛给你一堆封条与询问,让你找出最早能把“年味预算”压到合格线的时刻。

题目描述

设常数 B=2026B=2026

对任意非负整数 xx,进行如下仪式:

  • 初始时,你有 xx 个“0 级火星”。
  • 允许重复执行操作:选择某个等级 t0t\ge 0,若当前存在 恰好 BBtt 级火星,则把这 BBtt 级火星合并为 1 个 (t+1)(t+1) 级火星
  • 当无法继续合并时停止。

将停止时各等级火星的个数记为一个序列(按等级从小到大排列),称为 xx纹样,记作 Pat(x)\operatorname{Pat}(x)

题目保证:无论合并操作执行顺序如何,最终得到的 Pat(x)\operatorname{Pat}(x) 都相同(即纹样是良定义的)。

定义:

$$g(x)=\text{纹样中火星总数}=\sum_{t\ge 0}\operatorname{Pat}(x)_t . $$

称两个数 x,yx,y 相印 当且仅当 Pat(x)=Pat(y)\operatorname{Pat}(x)=\operatorname{Pat}(y)

给定序列 a1,,ana_1,\dots,a_n,如果相邻两项 ai,ai+1a_i,a_{i+1} 相印,则它们会被自动扎在同一束中。 一束定义为按此规则得到的一个极大连续区间(不能再向左右扩展)。

你有 mm 张封条,第 jj 张覆盖区间 [Lj,Rj][L_j,R_j],按顺序执行。

执行第 jj 张封条时:

  • 对当前所有束中,满足“该束区间 [l,r][l,r] 完全落在封条内”,即 LjlL_j\le lrRjr\le R_j 的束:

    • 将这整束内所有位置的值 aka_k 统一替换为 g(ak)g(a_k)
  • 执行完替换后,按“相印”规则重新自动扎绳成束(可能发生合并)。

记执行前 tt 张封条后的序列为 a(t)a^{(t)}t=0t=0 表示不执行任何封条)。

4) 询问:最早满足预算

共有 qq 个询问,第 ii 个询问给出 (li,ri,Si)(l_i,r_i,S_i)。你需要输出最小的 t[0,m]t\in[0,m] 使得

k=liriak(t)Si.\sum_{k=l_i}^{r_i} a^{(t)}_k \le S_i.

若不存在这样的 tt,输出 1-1

输入格式

第一行三个整数 n,m,qn,m,q

第二行 nn 个整数 a1,,ana_1,\dots,a_n

接下来 mm 行,每行两个整数 Lj,RjL_j,R_j

接下来 qq 行,每行三个整数 li,ri,Sil_i,r_i,S_i

输出格式

输出共 qq 行,每行一个整数,表示对应询问的答案;若不存在则输出 1-1

6 3 4
2026 2026 5 4052 4052 2027
1 5
2 6
3 4
1 6 10000
1 5 20
3 6 10
4 6 6
1
1
-1
2

数据范围

对于 10%10\% 的测试数据,n,m,q3000n,m,q\le 3000

对于另 20%20\% 的测试数据,n,m,q105n,m,q\le 10^5,且每次封条区间 [Lj,Rj][L_j,R_j] 都恰好对齐束边界(不会切开任何束)。

对于 100%100\% 的测试数据:

  • 1n,m,q1051\le n,m,q\le 10^5
  • 0ai10180\le a_i\le 10^{18}
  • 1LjRjn1\le L_j\le R_j\le n
  • 1lirin1\le l_i\le r_i\le n
  • 0Si10180\le S_i\le 10^{18}

Hello 2026 New Year Contest (Div. 2)

未参加
状态
已结束
规则
IOI
题目
7
开始于
2025-12-30 18:00
结束于
2026-1-6 18:00
持续时间
4 小时
主持人
参赛人数
16