問題一覧 > 通常問題

No.3612 Breaking door keys(ALL BREAK ver.)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 33
作問者 : kazuppa / テスター : Unbakedbread Tamiji153
ProblemId : 13607 / Paken新入生コンday1 (順位表) / 自分の提出
問題文最終更新日: 2026-08-06 14:08:43
Paken新入生コンday1の他の問題:

初めに

この問題はBreaking door keys(LITTLE BREAK ver.)と問題文が同じですが、$K_i$ の制約が異なっています。

問題文

$N$ 個のドアが横一列に並んでいます。ドア $i$ には強さ $S_i$ の鍵が付けられています。

これから、以下の問題について考えます。

これから、$l\leq i\leq r$ を満たすドア $i$ の内 $k$ 個を選び、その鍵を破壊します。

このとき、破壊したドアの鍵の強さの総和だけ体力を消費します。具体的には、ドア $p_1,p_2,...,p_k$ の鍵を壊した時、体力を $\displaystyle\sum_{i=1}^k S_{p_i}$ 消費します。

適切なドアを選んだ時、それらのドアの鍵を壊すために必要な体力の最小値を求めてください。

この問題には $Q$ 個のシチュエーションが考えられます。$i$ 個目のシチュエーションでは $l=L_i,r=R_i,k=K_i$ としてこの問題を答えてください。

制約

  • $1\leq N\leq 2\times 10^5$
  • $1\leq S_i\leq 10^9$
  • $1\leq Q \leq 2\times 10^5$
  • $1\leq L_i\leq R_i\leq N$
  • $\color{red}{K_i=R_i-L_i+1}$
  • 入力はすべて整数

小課題

この問題にはサブタスクによる部分点が設定されています。

小課題名 配点 制約
小課題160 点$N\leq2000,\ Q\leq2000$
小課題260 点$L_i=1$
小課題330 点追加の制約はない

入力

$N\ Q$
$S_1\ S_2\ \dotsc\ S_N$
$L_1\ R_1\ K_1$
$L_2\ R_2\ K_2$
$\vdots$
$L_Q\ R_Q\ K_Q$

出力

$Q$ 行出力してください。

$i$ 行目には、$i$ 個目のシチュエーションに対する答えを出力してください。

サンプル

サンプル1
入力
3 3
9 4 5
1 2 2
1 3 3
3 3 1
出力
13
18
5
  • $1$ 番目のシチュエーションについて、ドア $1,2$ を選ぶと、体力消費が $9+4=13$ になります。
  • $2$ 番目のシチュエーションについて、ドア $1,2,3$ を選ぶと、体力消費が $9+4+5=18$ になります。
  • $3$ 番目のシチュエーションについて、ドア $3$ を選ぶと、体力消費が $5$ になります。

このケースは小課題1,3の制約を満たします。

サンプル2
入力
6 3
1 6 9 2 3 1
1 2 2
1 3 3
1 6 6
出力
7
16
22

このケースは全ての小課題の制約を満たします。

サンプル3
入力
10 10
642323305 764287637 550312118 577593161 37991786 723146696 964957968 527248326 846898844 212337789
8 10 3
4 8 5
7 10 4
9 10 2
7 9 3
2 4 3
6 7 2
3 8 6
3 7 5
6 9 4
出力
1586484959
2830937937
2551442927
1059236633
2339105138
1892192916
1688104664
3381250055
2854001729
3062251834

このケースは小課題1,3の制約を満たします。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。