No.118 門松列(2)

レベル : / 実行時間制限 : 1ケース 5.000秒 / メモリ制限 : 512 MB / 通常問題
タグ : / 解いたユーザー数 162
作問者 : yuki2006yuki2006
2 ProblemId : 221 / 出題時の順位表

問題文

玄関に飾る門松を作っている時に、あることに気づいた。

$N$本の竹を高さをそれぞれ$A_i$としたときに、
それらから$3$本を自由に選んでよく、自由に並び替えて良い。
その時に何組の選び方の数が「門松列」になっているかを知りたくなった。

「門松列」とは、選んだ「$3$つの竹の長さの降順で$2$番目が、左または右側になっているもの」、「$3$つの長さはすべて異なる」という条件も満たすものであるとする。

$N$本の竹の高さが与えられるので、「門松列」にすることができる3つの竹の選び方の数を求めてください。
(並び順が違っても、同じ竹の組み合わせなら同じとカウントする。)

答えの数がintより多くなるので、(longよりは大きくならないようです)その値を$\rm mod\ 10^9+7$で求めてください。

それぞれの竹は番号が振ってあるので区別ができるとする。

入力

$N$
$A_1\ A_2 \dots A_N$

入力は全て整数で与えられる。
$3\le N \le 100000=10^5$
$1\le A_i \le 100=10^2,1\le i \le N$

出力

「門松列」になる組み合わせ数を$\rm mod\ 10^9+7$で求めてください。

サンプル

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

この3つの竹で門松列を作ることができます。

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

長さ2の竹,長さ3の竹はそれぞれ区別できるので、6種類の選び方があるようです。

サンプル3
入力
10
13 54 87 47 99 33 2 56 95 85
出力
120

この場合、${}_{10} C_3$と同じになります。

提出ページヘ
下のフォームでの入力は、テキストボックスにフォーカスがない場合は、(Onにしている場合)ショートカットキー・スマートサブミットの影響を受けるので、必要なら提出ページに遷移してください。

言語
問題によって提出できない言語があります。参考
ソースコード
ソースコードのテキストボックスに文字がある場合はファイルは無視されます。
テキストボックスで提出するとCR(\r)が除去されますが、ファイルで提出すると除去されません。