T-shirts
During the Programming Olympiad finals, each of the $N$ contestants is always given a t-shirt as is customary. However, the judges are sometimes a bit stressed out with making last minute changes to the problem sets (only changes, mind you – the judges never wait until the day before the contest to make a problem).
This means that when the judges order the t-shirts, they may not look that carefully on what t-shirt sizes the contestants have. After all, who can distinguish a size XS t-shirt from an XL t-shirt? The judges certainly couldn’t, but it appears that the contestants can when they try putting their new t-shirts on. Since the judges never learn to plan properly, this will surely be a problem next year as well. But right now it is your problem.
While each contestant has a preferred size, they can wear t-shirts in an interval of sizes. More specifically, the $i$:th contestant (starting from 0) can wear a t-shirt in any size at least $L[i]$ but at most $H[i]$ (both limits inclusive). Here, each size has been assigned an integer so that a higher integer means a larger size. Your task is to assign t-shirts to the contestants, so that as many contestants as possible will get a t-shirt that he or she can wear. The judges have ordered exactly $N$ t-shirts, and the size of the $i$:th t-shirt is $T[i]$.
Example
There are $N = 3$ contestants. The first contestant can wear t-shirts between sizes $3$ and $7$, the second contestant can wear t-shirts in sizes $3$ to $5$, and the last contestant can only wear a size $6$ t-shirt.
The three t-shirts have sizes $4, 6, 8$. Since nobody can wear the last t-shirt, at most two t-shirts can be assigned to the contestants. This can also be achieved, for example by giving the first t-shirt (size $4$) to the first contestant, and the second t-shirt (size $6$) to the last contestant. Thus the answer is 2.
Task
Your task is to compute the maximum number of contestants who can get a t-shirt that he or she can wear. You should implement the function tshirt(N, L, H, T).
-
tshirt(N, L, H, T) - this function will be called exactly once by the judge.
-
N: an integer - the number of contestants (as well as t-shirts).
-
L: an array with $N$ integers. L[i] ($0 \le i < N$) is the smallest size the $i$:th contestant can wear.
-
H: an array with $N$ integers. H[i] ($0 \le i < N$) is the largest size the $i$:th contestant can wear.
-
T: an array with $N$ integers. T[i] ($0 \le i < N$) is the size of the $i$:th t-shirt.
-
$0 \le L[i] \le H[i] \le \max (T)$
-
The function should return an integer, the maximum number of contestants who can get a t-shirt assigned to them.
-
A code skeleton containing the function to be implemented, together with a sample grader, can be found at http://progolymp.se/uploads/kattis-attachments/tshirts.zip.
Subtasks
The problem consists of a number of subtasks. Each subtask gives some amount of points, and to pass the subtask you must pass all the test cases in the subtask.
Subtask |
Points |
Limits |
1 |
7 |
$1 \le N \le 10$, $0 \le T[i] \le 1\, 000$ |
2 |
24 |
$1 \le N \le 1\, 000$, $0 \le T[i] \le 1\, 000$ |
3 |
13 |
$1 \le N \le 100\, 000$, $0 \le T[i] \le 1$ |
4 |
37 |
$1 \le N \le 100\, 000$, $0 \le T[i] \le 100,000$ |
5 |
19 |
$1 \le N \le 100\, 000$, $0 \le T[i] \le 10^9$ |
Input format
The sample judge reads input in the following format:
-
line $1$: N
-
line $2$: L[0] L[1] .. L[N - 1]
-
line $3$: H[0] H[1] .. H[N - 1]
-
line $4$: T[0] T[1] .. T[N - 1]
Output format
The judge writes a single line containing the return value of tshirt(N, L, H, T).
Sample Input 1 | Sample Output 1 |
---|---|
3 3 3 6 7 5 6 4 6 8 |
2 |