| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 3 초 | 1024 MB | 17 | 8 | 6 | 50.000% |
In the ancient city of Ica, there is said to be a palace with wealth beyond imagination. Inside, there is a corridor with $N$ boxes of candy from all over the world. Travellers passing by can take as much candy as they want, provided that they pay its weight in gold.
The boxes of candy are numbered 0ドル$ to $N-1$ from left to right. In box $i,ドル there are $a_i$ units of candy left, where $a_i$ is a non-negative integer.
As the guardian of the palace, you would like to move the boxes around so that boxes with a lot of candy end up closer to the entrance.
You are given the array $a_0, a_1, \ldots, a_{N-1},ドル as well as the numbers $F$ and $T$. In a single operation, you are allowed to swap two adjacent elements of $a_0, a_1, \ldots, a_{N-1}$. What is the minimum number of operations required so that the first $F$ elements of the array sum to at least $T$?
The first line of the input contains three integers, $N,ドル $F,ドル and $T$.
The second line of the input contains $N$ integers $a_0, a_1, \ldots, a_{N-1}$.
If it is impossible to achieve the objective using the operations, print NO.
Otherwise, print a single integer, the minimal number of operations.
The numbers in the input may not fit in a 32ドル$-bit integer, so be aware of overflows if you are using C++.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 6 | $N \le 2$ and $a_i \le 100$ for $i = 0, 1, \ldots, N-1$ and $T \le 10^9$ |
| 2 | 19 | $a_i \le 1$ for $i = 0, 1, \ldots, N-1$ |
| 3 | 16 | $N \le 20$ |
| 4 | 30 | $a_i \le 100$ for $i = 0, 1, \ldots, N-1$ |
| 5 | 29 | No additional constraints |
6 2 27 10 4 20 6 3 3
1
6 5 5000000000 1000000000 1000000000 0 1000000000 1000000000 1000000000
3
3 2 100 20 30 60
NO
1 1 100 100
0
In the first sample test case, the first two elements should sum to at least 27ドル$. This can be achieved by a single swap of two adjacent elements: swap the 4ドル$ and 20ドル$. After this swap, the array becomes 10 20 4 6 3 3, and indeed the first two elements sum to 10ドル+20 = 30\ge 27$.
In the second sample test case, the 0ドル$ must move all the way to the end of the array; this takes three swaps.
In the third sample test case, it is impossible to make the first two elements sum to at least 100ドル$; the best we can do is 60ドル+30=90$.
Olympiad > European Girls' Olympiad in Informatics > EGOI 2023 > Day 2 B번