0% found this document useful (0 votes)
56 views2 pages

Databases (En)

Pepe has n databases that can each store a maximum number of data chunks. Over q operations, a data chunk will be added to databases between indices l and r, and if a database exceeds its capacity, the earliest data chunk is deleted. The number of distinct data chunks in each database after all operations must be printed. The input specifies n, q, database capacities, and the indices, ranges and data chunks for each operation. The output prints the number of distinct data chunks in each database.

Uploaded by

tammim98100
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views2 pages

Databases (En)

Pepe has n databases that can each store a maximum number of data chunks. Over q operations, a data chunk will be added to databases between indices l and r, and if a database exceeds its capacity, the earliest data chunk is deleted. The number of distinct data chunks in each database after all operations must be printed. The input specifies n, q, database capacities, and the indices, ranges and data chunks for each operation. The output prints the number of distinct data chunks in each database.

Uploaded by

tammim98100
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Bangladesh Olympiad in Informatics databases

Preliminary Contest Preliminary T asks


February 10, 2024 English

Databases
Pepe has n databases numbered from 1 to n. He also has 2 ⋅ 10 5 data chunks numbered from 1 to
2 ⋅ 10 5 . The ith database can store at most c[i] data chunks. Initially all the databases are empty.

Pepe’s weird algorithm will do q operations on the databases. In the ith operation, from all the
databases numbered from l[i] to r[i], the algorithm will add data chunk x[i] to the end of the
database. But if after this operation, any database exceeds its capacity then it will delete the data
chunk at the start of that database (i.e. databases have a queue like structure).

After all the q operations, Pepe realizes that some databases contain the same data chunk multiple
times. But Pepe is only interested in distinct data chunks. So for each database i, print how many
distinct data chuncks it contains in the end.

Input
The input will be given in the following format:

line 1 : n q
line 2 : c[1] c[2] ⋯ c[n]
line 2 + i (1 ≤ i ≤ q) : l[i] r[i] x[i]

Output
Print the output in the following format:

line i (1 ≤ i ≤ n) : number of distinct data chunks ith database contains in the end

Constraints
1 ≤ n, q ≤ 2 ⋅ 10 5
1 ≤ c[i] ≤ 2 ⋅ 10 5 for (1 ≤ i ≤ n)
1 ≤ l[i] ≤ r[i] ≤ n for (1 ≤ i ≤ q)
1 ≤ x[i] ≤ 2 ⋅ 10 5 for (1 ≤ i ≤ q)

Subtasks
1. (10 points) n, q ≤ 2000
2. (11 points) all x[i] are distinct
3. (15 points) c[i] = 2 ⋅ 10 5 for (1 ≤ i ≤ n)

databases (1 of 2)
4. (5 points) x[i] ≤ 2 for (1 ≤ i ≤ q)
5. (7 points) x[i] ≤ 50 for (1 ≤ i ≤ q)
6. (12 points) c[i] ≤ 50 for (1 ≤ i ≤ n)
7. (17 points) c[i] = c[j] for (1 ≤ i, j ≤ n)
8. (23 points) No additional constraints.

Examples

Example 1

3 4
1 2 3
1 2 3
1 2 1
2 3 1
3 3 2‎

The correct output is:

1
1
2‎

Here is what happened in every operation (green means the data chunk is added, red means the data
chunk is deleted):

at start: [], [], []


operation 1: [3], [3], []
operation 2: [3, 1], [3, 1], []
operation 3: [1], [3, 1, 1], [1]
operation 4: [1], [1, 1], [1, 2]

In the end, the databases contain 1, 1 and 2 distinct data chunks respectively.

databases (2 of 2)

You might also like