QOJ.ac

QOJ

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

#23357. Kistenlagerung

Statistics

Jeongol möchte Kisten in einem Lager aufbewahren. Es gibt $N$ Kisten mit Nummern von $1$ bis $N$. Kiste $i$ ($1\le i\le N$) hat Größe $s_i$ und Fassungsvermögen $c_i$. Bei jeder Kiste ist das Fassungsvermögen kleiner als die Größe: $c_i<s_i$.

Jeongol findet, dass zu viele Kisten das Lager unordentlich machen, und möchte Kisten ineinander stellen. Dabei müssen folgende Bedingungen gelten:

  • Eine Kiste kann eine Kiste aufnehmen, deren Größe höchstens ihrem Fassungsvermögen entspricht.

  • Eine Kiste, die bereits eine andere enthält, darf selbst in eine weitere Kiste gestellt werden.

  • Jede Kiste darf höchstens eine Kiste direkt enthalten. Man darf also höchstens eine andere Kiste hineinstellen, aber diese darf ihrerseits weitere Kisten enthalten.

Die Lagerkosten entsprechen der Anzahl der Kisten, die in keiner anderen Kiste enthalten sind.

Betrachte beispielsweise $N=4$ und die Größen und Fassungsvermögen in der folgenden Tabelle:

Nummer Größe Fassungsvermögen
1 6 4
2 5 1
3 9 8
4 2 1

Wird Kiste 4 in Kiste 1 und Kiste 1 in Kiste 3 gestellt, wie unten gezeigt, sind zwei Kisten in keiner anderen enthalten. Die Lagerkosten betragen somit 2.

problem_23357_9006cb86305c1cefa5e34f45ea654070.png

Werden dagegen Kiste 2 und Kiste 4 wie unten in Kiste 3 gestellt, sind die Bedingungen verletzt, da Kiste 3 zwei Kisten direkt enthält.

problem_23357_23ae742043042dcf3203e44480355d55.png

Nicht alle Kisten müssen im Lager bleiben. Jeongol möchte nur einige Kisten mit den kleinsten Nummern behalten und die übrigen wegwerfen. Wie viele Kisten er nutzt, hat er noch nicht entschieden.

Hilf Jeongol und schreibe ein Programm, das für jedes $i$ von $1$ bis $N$ die minimalen Lagerkosten für die Kisten $1,2,\ldots,i$ berechnet.

Beschränkungen

  • Alle angegebenen Zahlen sind ganzzahlig.
  • $2\le N\le2\times10^5$.
  • $1\le c_i<s_i\le10^9$ ($1\le i\le N$).

Teilaufgaben

  1. (7 Punkte) $N\le6$.
  2. (12 Punkte) $s_i=c_i+1$.
  3. (26 Punkte) $N\le1000$.
  4. (17 Punkte) $s_i\le100$.
  5. (38 Punkte) Keine zusätzlichen Einschränkungen.

Eingabe

Die erste Zeile enthält die Anzahl der Kisten $N$.

Die nächsten $N$ Zeilen ab der zweiten beschreiben die Kisten. Die $i$-te dieser Zeilen enthält Größe $s_i$ und Fassungsvermögen $c_i$ der Kiste $i$, getrennt durch ein Leerzeichen.

Ausgabe

Gib $N$ Zeilen aus.

Gib in Zeile $i$ ($1\le i\le N$) die minimalen Lagerkosten für Kisten $1,2,\ldots,i$ aus.

Beispiele

Eingabe 1

4
6 4
5 1
9 8
2 1

Ausgabe 1

1
2
2
2

Eingabe 2

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

Ausgabe 2

1
1
2
2
2
3

Eingabe 3

8
13 6
7 5
9 4
11 10
4 2
15 5
16 7
8 3

Ausgabe 3

1
2
3
3
3
4
4
5

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.