CF BUDDY
← Problems·

1260D · A Game with Traps

1900 · binary search, dp, greedy

Problem: You are playing a computer game, where you lead a party of mm soldiers. Each soldier is characterised by his agility aia_i.

The level you are trying to get through can be represented as a straight line segment from point 00 (where you and your squad is initially located) to point n+1n + 1 (where the boss is located).

The level is filled with kk traps. Each trap is represented by three numbers lil_i, rir_i and did_i. lil_i is the location of the trap, and did_i is the danger level of the trap: whenever a soldier with agility lower than did_i steps on a trap (that is, moves to the point lil_i), he gets instantly killed. Fortunately, you can disarm traps: if you move to the point rir_i, you disarm this trap, and it no longer poses any danger to your soldiers. Traps don't affect you, only your soldiers.

You have tt seconds to complete the level — that is, to bring some soldiers from your squad to the boss. Before the level starts, you choose which soldiers will be coming with you, and which soldiers won't be. After that, you have to bring all of the chosen soldiers to the boss. To do so, you may perform the following actions:

  • if your location is xx, you may move to x+1x + 1 or x1x - 1. This action consumes one second;
  • if your location is xx and the location of your squad is xx, you may move to x+1x + 1 or to x1x - 1 with your squad in one second. You may not perform this action if it puts some soldier in danger (i. e. the point your squad is moving into contains a non-disarmed trap with did_i greater than agility of some soldier from the squad). This action consumes one second;
  • if your location is xx and there is a trap ii with ri=xr_i = x, you may disarm this trap. This action is done instantly (it consumes no time).

Note that after each action both your coordinate and the coordinate of your squad should be integers.

You have to choose the maximum number of soldiers such that they all can be brought from the point 00 to the point n+1n + 1 (where the boss waits) in no more than tt seconds.

Input Format: The first line contains four integers mm, nn, kk and tt (1m,n,k,t21051 \le m, n, k, t \le 2 \cdot 10^5, n<tn < t) — the number of soldiers, the number of integer points between the squad and the boss, the number of traps and the maximum number of seconds you may spend to bring the squad to the boss, respectively.

The second line contains mm integers a1a_1, a2a_2, ..., ama_m (1ai21051 \le a_i \le 2 \cdot 10^5), where aia_i is the agility of the ii-th soldier.

Then kk lines follow, containing the descriptions of traps. Each line contains three numbers lil_i, rir_i and did_i (1lirin1 \le l_i \le r_i \le n, 1di21051 \le d_i \le 2 \cdot 10^5) — the location of the trap, the location where the trap can be disarmed, and its danger level, respectively.

Output Format: Print one integer — the maximum number of soldiers you may choose so that you may bring them all to the boss in no more than tt seconds.

Note: In the first example you may take soldiers with agility 33, 44 and 55 with you. The course of action is as follows:

  • go to 22 without your squad;
  • disarm the trap 22;
  • go to 33 without your squad;
  • disartm the trap 33;
  • go to 00 without your squad;
  • go to 77 with your squad.

The whole plan can be executed in 1313 seconds.

Sample Cases

Case 1

Input

5 6 4 14
1 2 3 4 5
1 5 2
1 2 5
2 3 5
3 5 3

Output

3

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback