QOJ.ac

QOJ

시간 제한: 5 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓

#18490. Giấy, bút, tam giác

통계

Hình tam giác thực sự vĩ đại một cách đáng ngạc nhiên. Trẻ em lên 3 tuổi có thể vẽ theo hình tròn, lên 4 tuổi có thể vẽ hình vuông. Tuy nhiên, người ta biết rằng phải mất thêm một năm nữa trẻ mới có thể vẽ được hình tam giác (Ahn Hyo-seop, Shin Hee-young, "Nhi khoa Hong Chang-ui", Mirae N (2020), bản in thứ 12).

Vì Yiha đã qua tuổi lên 5 từ lâu, cô bé có thể dễ dàng dùng bút vẽ một "tam giác đều lớn" có độ dài cạnh là $m$ trên giấy.

Trước khi tìm hiểu thêm về sự tò mò của Yiha, chúng ta cần định nghĩa về lưới tam giác. Khác với hệ tọa độ vuông góc thông thường nơi trục $x$ vuông góc với trục $y$, trong lưới tam giác, góc giữa trục $x$ và trục $y$ là 60 độ như hình dưới đây. Nếu ta vẽ một đường thẳng có dạng $x+y = m$ ở đây, một tam giác đều có các đỉnh là $(0,0)$, $(m,0)$, và $(0,m)$ sẽ được tạo ra như hình dưới đây. Hãy gọi tam giác đều này là "tam giác đều lớn".

Hình F.1: Hai trục của lưới tam giác và đường thẳng dạng $x+y = m$

Yiha muốn vẽ thêm nhiều tam giác đều hơn nữa, nên cô bé đã vẽ $q$ đường thẳng song song với một trong ba cạnh và đi qua bên trong tam giác đều lớn, sau đó xóa đi những phần không nằm trong tam giác đều lớn. Khi đó, các tam giác đều đã nở rộ như những bông hoa!

Yiha cảm thấy rất hạnh phúc khi nhìn thấy vô số tam giác đều, nhưng ngay sau đó cô bé lại tò mò không biết có tổng cộng bao nhiêu tam giác đều trong hình. Vì số lượng có vẻ quá nhiều để đếm bằng tay, hãy viết một chương trình để trả lời câu hỏi của Yiha.

Dữ liệu vào

Dòng đầu tiên chứa số nguyên $m$ biểu thị độ dài cạnh của tam giác đều lớn và số nguyên $q$ biểu thị số lượng đường thẳng mới mà Yiha đã vẽ, cách nhau bởi một khoảng trắng ($1 \le m \le 200\,000$, $0 \le q \le 3m-3$). Các đỉnh của tam giác đều lớn trên lưới tam giác là $(0,0)$, $(m,0)$, và $(0,m)$.

Trong $q$ dòng tiếp theo, mỗi dòng chứa hai số nguyên $d$ và $l$ cách nhau bởi một khoảng trắng ($0 < l < m$). $d$ biểu thị góc tạo với trục $x$ và là một trong các giá trị $0$, $60$, hoặc $120$. Nếu $d$ là $0$, đường thẳng $y = l$ được thêm vào; nếu $d$ là $60$, đường thẳng $x = l$ được thêm vào; nếu $d$ là $120$, đường thẳng $x+y = l$ được thêm vào. Các đường thẳng được cho trong dữ liệu vào là đôi một phân biệt.

Dữ liệu ra

In ra số lượng tam giác đều nằm hoàn toàn bên trong tam giác đều lớn. Những tam giác đều chỉ nằm một phần bên trong tam giác đều lớn sẽ không được tính, và một điểm đơn lẻ không được coi là một tam giác đều. Bản thân tam giác đều lớn cũng được tính là nằm trong chính nó.

Ví dụ

Dữ liệu vào 1

2 3
0 1
60 1
120 1

Dữ liệu ra 1

5

Dữ liệu vào 2

10 5
60 1
120 2
0 1
120 5
60 9

Dữ liệu ra 2

12

Ghi chú

Nếu vẽ lưới tam giác và các đường thẳng cho hai ví dụ, ta sẽ được kết quả như sau.

Hình F.2: Hình vẽ tương ứng với Ví dụ 1

Hình F.3: Hình vẽ tương ứng với Ví dụ 2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.