No.118 門松列(2)
問題文最終更新日: 2016-05-24 14:37:13
問題文
玄関に飾る門松を作っている時に、あることに気づいた。
$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$と同じになります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。