AT_arc018_2.[ARC018B] 格子点と整数

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

诸君,我喜欢整数。
我喜欢格点。
我喜欢面积。
我喜欢三角形。
我非常喜欢所有顶点都在格点上的、面积为整数的三角形。
当我看到一组格点,数一数从中任选 33 个点能组成多少个面积为整数的三角形时,我的心情会变得非常愉快。
虽然心情愉快,但当格点数量很多时,数起来就很麻烦。
希望身为优秀程序员的你,能替我数一数。
给定 NN 个格点,请你编写一个程序,统计从中任选 33 个点能组成多少个面积为正整数的三角形。面积为 00 的三角形不算三角形!
顺便一提,格点指的是坐标平面上 xx 和 yy 都是整数的点 (x,y)(x, y)。

输入通过标准输入按以下格式给出。

NN
x1x_1 y1y_1
x2x_2 y2y_2
⋮\vdots
xNx_N yNy_N

  • 第 11 行给出格点的个数 NN,满足 3≤N≤1003 \leq N \leq 100。
  • 接下来的 NN 行,每行给出两个用空格分隔的整数 (xi,yi)(x_i, y_i),表示第 ii 个格点的位置,1≤xi,yi≤1091 \leq x_i, y_i \leq 10^9。不会有重复的格点(即 i≠ji \neq j 时 (xi,yi)≠(xj,yj)(x_i, y_i) \neq (x_j, y_j))。

请输出从 NN 个格点中任选 33 个点,能组成面积为正整数的三角形的个数。
注意,输出最后要换行。

例如:

3
1 1
1 2
3 1

输出:

1

只有一个三角形 (1,1),(1,2),(3,1)(1,1),(1,2),(3,1),面积为 11。

3
1 1
1 2
2 1

输出:

0

三角形 (1,1),(1,2),(2,1)(1,1),(1,2),(2,1) 的面积为 0.50.5,不是整数。除此之外无法组成其他三角形。

3
1 1
2 2
3 3

输出:

0

三个点共线,无法组成三角形。

8
3 1
4 1
5 9
2 6
5 3
5 8
9 7
9 3

输出:

38

输入格式

第一行包含一个整数 NN,表示格点的数量。
接下来的 NN 行,每行包含两个整数 xix_i 和 yiy_i,表示第 ii 个格点的坐标。

输出格式

输出一个整数,表示能组成面积为正整数的三角形的个数。
输出末尾需换行。

说明/提示

  • 3≤N≤1003 \leq N \leq 100
  • 1≤xi,yi≤1091 \leq x_i, y_i \leq 10^9
  • 不会有重复的格点。
  • 三角形面积为 00 的情况不计入答案。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页