#P1439. Rhombs

    ID: 440 远端评测题 1000ms 10MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>计算几何组合数学Central Europe 2002

Rhombs

本题没有可用的提交语言。

描述

一个无限大三角网格是由等边三角形覆盖的平面:

网格中两个相邻的三角形构成一个菱形。这样的菱形共有 33 种类型:

一个网格多边形是指由网格中三角形边构成的简单多边形。如果一个网格多边形可以被不相交地分割为若干 AA 型、BB 型和 CC 型菱形,则称其为菱形可分割多边形

例如,考虑以下网格六边形:

该六边形可以被分割为 44AA 型、44BB 型和 44CC 型菱形:

对于给定的菱形可分割多边形 PP,计算其某种正确分割方式下 AABBCC 型菱形的数量。

编写一个程序完成以下任务:

  1. 从标准输入读取一个菱形可分割多边形的描述;
  2. 计算该多边形某种正确分割方式下 AABBCC 型菱形的数量;
  3. 将结果输出到标准输出。

输入

输入的第一行包含一个整数 nn3n500003 \leq n \leq 50\,000),表示菱形可分割多边形的边数。接下来的 nn 行按顺时针顺序依次描述多边形的每一条边。多边形的任意两条相邻边不会共线

每条边的描述由两个整数 ddkk 组成:

  • dd 表示边的方向(参考下图编号):
  • kk 表示该边的长度,以网格三角形的边数为单位。

所有边的 kk 值之和不超过 100000100\,000

输出

输出一行,包含三个用空格分隔的整数,分别表示 AA 型、BB 型和 CC 型菱形的数量(顺序任意)。

输入数据 1

6  
1 2  
2 2  
3 2  
4 2  
5 2  
6 2  

输出数据 1

4 4 4  

来源

Central Europe 2002