問題一覧 > 通常問題

No.3456 Common Difference is D

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 67
作問者 : くらげ / テスター : dyktr_06 おのせ hikikomori tyawanmusi
ProblemId : 13067 / MMA Contest 021 (順位表) / 自分の提出
問題文最終更新日: 2026-02-27 23:41:50
MMA Contest 021の他の問題:

問題文

長さ $N$ の整数列 $A = ( A_1, A_2, \dots, A_N )$ と正整数 $D$ が与えられます。$A$ の部分列であって、長さが $3$、公差が $D$ の等差数列となるものはいくつあるか求めてください。

より厳密には、次の条件を満たす $(i, j, k)$ の組の個数を求めてください。

  • $1 \le i < j < k \le N$
  • $A_i < A_j < A_k$
  • $A_j - A_i = A_k - A_j = D$

制約

  • $3 \le N \le 10^5$
  • $1 \le D \le 5 \times 10^8$
  • $0 \le A_i \le 10^9$ $(1 \le i \le N)$
  • 入力はすべて整数

入力

$N$ $D$
$A_1$ $A_2$ $\dots$ $A_N$

出力

条件を満たす $(i, j, k)$ の組の個数を $1$ 行で出力してください。

サンプル

サンプル1
入力
7 2
0 2 5 1 4 3 6
出力
2

条件を満たす $A$ の部分列は $(A_i, A_j, A_k) = (0, 2, 4), (2, 4, 6)$ の $2$ つです。

サンプル

サンプル2
入力
6 1
1 1 2 2 3 3
出力
8

$(A_i, A_j, A_k)$ が数列として一致していても $(i, j, k)$ の選び方が異なっていれば区別して数えることに注意してください。

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