QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#402. Матрьошки

Statistics

Ви збираєтеся відкрити магазин матрьошок. Тому ви замовили на фабриці $N$ матрьошок. Вони пронумеровані від $1$ до $N$. Матрьошку з номером $i$ ($1\le i\le N$) можна вважати порожнистим прямим круговим циліндром із діаметром основи $R_i$ см і висотою $H_i$ см.

Матрьошки можна зберігати, вкладаючи одну в іншу. У кожну матрьошку можна вкласти лише одну іншу матрьошку, у якої і діаметр основи, і висота строго менші. Матрьошка, яку вкладають, сама також може містити іншу матрьошку.

Одного дня з фабрики, де ви замовили матрьошки, надійшло повідомлення. Усі $N$ замовлених матрьошок неможливо підготувати одночасно, тому спочатку вам доставлять усі матрьошки з цих $N$, у яких діаметр основи не менший за $A$ см, а висота не більша за $B$ см.

Значення $A,B$ можуть раптово змінитися. Тому для кожної з $Q$ пар $(A_j,B_j)$ ($1\le j\le Q$) ви вирішили заздалегідь знайти мінімальну кількість матрьошок, які не вкладені в жодну іншу матрьошку, якщо доставлені спочатку матрьошки зберігати, вкладаючи одну в іншу.

Завдання

Задано діаметр основи та висоту кожної матрьошки, а також $Q$ пар $(A_j,B_j)$ ($1\le j\le Q$). Напишіть програму, яка для кожної пари знаходить мінімальну кількість матрьошок, що не вкладені в жодну іншу матрьошку, якщо доставлені спочатку матрьошки зберігати, вкладаючи одну в іншу.

Вхідні дані

Прочитайте зі стандартного вводу такі дані.

  • Перший рядок містить цілі числа $N,Q$, розділені пробілом. Це означає, що ви замовили $N$ матрьошок і задано $Q$ пар значень $A,B$.
  • Рядок з номером $i$ ($1\le i\le N$) серед наступних $N$ рядків містить цілі числа $R_i,H_i$, розділені пробілом. Це означає, що матрьошка з номером $i$ має діаметр основи $R_i$ см і висоту $H_i$ см.
  • Рядок з номером $j$ ($1\le j\le Q$) серед наступних $Q$ рядків містить цілі числа $A_j,B_j$, розділені пробілом.

Вихідні дані

Вивід складається з $Q$ рядків. У рядку з номером $j$ ($1\le j\le Q$) виведіть для пари $(A_j,B_j)$ мінімальну кількість матрьошок, що не вкладені в жодну іншу матрьошку, якщо доставлені спочатку матрьошки зберігати, вкладаючи одну в іншу.

Обмеження

Усі вхідні дані задовольняють такі умови.

  • $1\le N\le 200\,000$.
  • $1\le Q\le 200\,000$.
  • $1\le R_i\le 1\,000\,000\,000$ ($1\le i\le N$).
  • $1\le H_i\le 1\,000\,000\,000$ ($1\le i\le N$).
  • $1\le A_j\le 1\,000\,000\,000$ ($1\le j\le Q$).
  • $1\le B_j\le 1\,000\,000\,000$ ($1\le j\le Q$).

Підзадачі

Підзадача 1 [11 балів]

Виконуються такі умови.

  • $N\le 10$.
  • $Q=1$.

Підзадача 2 [15 балів]

Виконуються такі умови.

  • $N\le 100$.
  • $Q=1$.

Підзадача 3 [25 балів]

Виконуються такі умови.

  • $N\le 2\,000$.
  • $Q\le 2\,000$.

Підзадача 4 [49 балів]

Додаткових обмежень немає.

Приклади

Вхідні дані 1

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

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

0
1
2

Пояснення

  • Для $(A,B)=(10,5)$ немає жодної матрьошки з діаметром основи не меншим за $10$ см і висотою не більшою за $5$ см, тому виводимо 0.
  • Для $(A,B)=(3,5)$ доставлять матрьошки з діаметром основи не меншим за $3$ см і висотою не більшою за $5$ см, тобто матрьошки з номерами 1 і 7. Матрьошку з номером 7 можна вкласти в матрьошку з номером 1. Мінімальна кількість матрьошок, які не вкладені в жодну іншу матрьошку, дорівнює 1.
  • Для $(A,B)=(3,9)$ доставлять матрьошки з діаметром основи не меншим за $3$ см і висотою не більшою за $9$ см, тобто матрьошки з номерами 1, 2, 3 і 7. У цьому випадку матрьошку з номером 7 можна вкласти в матрьошку з номером 1, а матрьошку з номером 1 — у матрьошку з номером 3. Мінімальна кількість матрьошок, які не вкладені в жодну іншу матрьошку, дорівнює 2.

Вхідні дані 2

10 8
14 19
9 16
11 2
7 18
20 16
9 5
10 9
20 6
4 17
13 8
7 14
9 3
9 13
4 19
12 4
19 16
18 10
7 14

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

3
1
3
5
0
2
1
3

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.