QOJ.ac

QOJ

时间限制: 1.5 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#15302. Розрізання шоколаду

统计

У Маленького L є шматок шоколаду розміром $L \times W \times H$. Усередині шоколаду містяться $n$ мигдальних горіхів, причому $i$-й мигдаль розташований у центрі одиничного куба $[x_i - 1, x_i] \times [y_i - 1, y_i] \times [z_i - 1, z_i]$. Жодні два мигдалі не займають одну й ту саму позицію.

Тепер Маленький L хоче розрізати цей шматок шоколаду на кілька менших шматочків. А саме, він хоче зробити $p, q, r$ розрізів уздовж трьох вимірів відповідно. Кожен розріз має проходити за цілочисельними координатами, жодні два розрізи не можуть бути зроблені в одній і тій самій координаті одного виміру, і розрізи не можна робити по краях шоколаду (тобто в координатах $0$ або $L, W, H$).

Формально, розріз у напрямку $x$ у координаті $k$ ($0 < k < L$) означає розрізання шоколаду вздовж площини $x = k$. Те саме стосується напрямків $y$ та $z$.

Крім того, Маленький L сподівається, що в кожному з $(p + 1)(q + 1)(r + 1)$ шматочків шоколаду, отриманих після розрізів, міститиметься однакова кількість мигдалю. Маленький L хоче дізнатися, скільки суттєво різних способів розрізання задовольняють цю умову. Два способи розрізання вважаються різними, якщо в одному з вимірів існує позиція, у якій перший спосіб робить розріз, а другий — ні. Виведіть результат за модулем $10^9 + 7$.

Вхідні дані

Перший рядок кожного тесту містить три цілі числа $L, W, H$ ($1 \le L, W, H \le 10^9$), що позначають розміри шоколаду.

Другий рядок містить три цілі числа $p, q, r$ ($0 \le p, q, r \le 10^6$), що позначають кількість розрізів у напрямках $x$, $y$ та $z$ відповідно.

Третій рядок містить ціле число $n$ ($1 \le n \le 10^6$), що позначає кількість мигдальних горіхів.

Наступні $n$ рядків містять по три цілі числа $x_i, y_i, z_i$ ($1 \le x_i \le L, 1 \le y_i \le W, 1 \le z_i \le H$), що позначають позицію чергового мигдалю. Гарантується, що всі трійки $(x_i, y_i, z_i)$ є різними.

Вихідні дані

Один рядок, що містить ціле число — результат за модулем $10^9 + 7$.

Приклади

Вхідні дані 1

4 4 1
1 1 0
4
1 2 1
2 4 1
3 1 1
4 3 1

Вихідні дані 1

1

Вхідні дані 2

3 3 3
1 1 1
3
1 1 1
2 2 2
3 3 3

Вихідні дані 2

0

Вхідні дані 3

9 9 9
1 1 1
8
1 1 2
2 2 8
1 9 1
2 8 9
8 2 1
9 2 9
9 8 1
8 9 7

Вихідні дані 3

180

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.