問題一覧 > 通常問題

No.1144 Triangles

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 46
作問者 : null / テスター : hotman78
2 ProblemId : 4687 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-04-25 23:38:17

はじめに

C++ での余裕を持った正答は確認してますが、制約がきつめかもしれません。TL が 3 秒 であることに注意してください。

問題文

nn 個の点が与えられます。ii 番目の点は Pi(xi,yi)P_i(x_i, y_i) です。
i=1nj=i+1nk=j+1n2×PiPjPk\displaystyle \sum_{i=1}^{n} \sum_{j=i+1}^{n} \sum_{k=j+1}^{n} 2 \times \triangle P_i P_j P_k
(109+7)(10^9 + 7) で割った余りを求めてください。ただし、ABC\triangle ABC は点 A,B,CA, B, C を頂点とする三角形の面積とします。三角形が成立しない場合は 00 とします。
この制約下で与えられた NN 点のうちどの 33 つからなる三角形の面積の二倍も整数となることが示せます。

制約

  • 3n2×1033 \le n \le 2 \times 10^3
  • 104xi,yi104-10^4 \le x_i, y_i \le 10^4
  • 入力はすべて整数

入力

nn
x1 y1x_1\ y_1
x2 y2x_2\ y_2
\dots
xn ynx_n\ y_n

出力

i=1nj=i+1nk=j+1n2×PiPjPk\displaystyle \sum_{i=1}^{n} \sum_{j=i+1}^{n} \sum_{k=j+1}^{n} 2 \times \triangle P_i P_j P_k
(109+7)(10^9 + 7) で割った余りを出力してください。最後に改行してください。

サンプル

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


2×P1P2P3+2×P1P2P4+2×P1P2P5+2×P1P3P4+2×P1P3P5+2×P1P4P5+2×P2P3P4+2×P2P3P5+2×P2P4P5+2×P3P4P51+1+2+1+6+4+1+5+3+1=252 \times \triangle P_1 P_2 P_3 + 2 \times \triangle P_1 P_2 P_4 + 2 \times \triangle P_1 P_2 P_5 + 2 \times \triangle P_1 P_3 P_4 + 2 \times \triangle P_1 P_3 P_5 + 2 \times \triangle P_1 P_4 P_5 + 2 \times \triangle P_2 P_3 P_4 + 2 \times \triangle P_2 P_3 P_5 + 2 \times \triangle P_2 P_4 P_5 + 2 \times \triangle P_3 P_4 P_5 \\ 1+1+2+1+6+4+1+5+3+1=25 です。

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

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

三点が同一直線状に存在することもあります。このケースではありませんが、二点以上が同じ点の場合もあります。

サンプル3
入力
10
3537 9451
9695 -7141
-3029 5335
400 5744
928 7006
-2302 -6741
-6467 -9447
3962 9075
3296 -3856
-3 7451
出力
233469265

(109+7)(10^9+7) で割った余りを出力することに注意してください。

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