Orig Description
Score : 200 points
Problem StatementThere are N children, numbered 1, 2, ..., N.
Snuke has decided to distribute x sweets among them.
He needs to give out all the x sweets, but some of the children may get zero sweets.
For each i (1 \leq i \leq N), Child i will be happy if he/she gets exactly a_i sweets.
Snuke is trying to maximize the number of happy children by optimally distributing the sweets.
Find the maximum possible number of happy children.
Constraints
All values in input are integers.
2 \leq N \leq 100
1 \leq x \leq 10^9
1 \leq a_i \leq 10^9
InputInput is given from Standard Input in the following format:
N x
a_1 a_2 ... a_N
OutputPrint the maximum possible number of happy children.
Sample Input 13 70
20 30 10
Sample Output 12
One optimal way to distribute sweets is (20, 30, 20).
Sample Input 23 10
20 30 10
Sample Output 21
The optimal way to distribute sweets is (0, 0, 10).
Sample Input 34 1111
1 10 100 1000
Sample Output 34
The optimal way to distribute sweets is (1, 10, 100, 1000).
Sample Input 42 10
20 20
Sample Output 40
No children will be happy, no matter how the sweets are distributed.
Extracted Specification
An integer N (2 ≤ N ≤ 100), representing some quantity or size.
An integer x (1 ≤ x ≤ 10^9), representing some quantity.
A list of integers A of size N, where each integer is between 1 and 10^9.
### Example Input:
```
3 70
20 30 10
```
### Function Signature:
Write a function f(N, x, A) that takes in the input.
def f(N: int, x: int, A: List[int]):
'''
N: an integer
x: an integer
A: a list of integers
'''
Test Case Generator
Here is a test case generator for the given problem statement:
```python
import random
def tcgen():
# Number of children (2 ≤ N ≤ 100)
N = random.randint(2, 100)
# Number of sweets (1 ≤ x ≤ 10^9)
x = random.randint(1, 10**9)
# List of sweets each child wants (1 ≤ a_i ≤ 10^9)
a = [random.randint(1, 10**9) for _ in range(N)]
return N, x, a
# Example usage:
N, x, a = tcgen()
print(N, x)
print(" ".join(map(str, a)))
```
Explanation:
1. The number of children, `N`, is randomly chosen between 2 and 100.
2. The number of sweets, `x`, is randomly chosen between 1 and 10^9.
3. The list `a` contains `N` integers, each representing the number of sweets a child wants, and each integer is randomly chosen between 1 and 10^9.
4. The function returns the generated test case values.
You can run the `tcgen` function to generate random test cases for the given problem. The example usage prints the generated test case in the required format.
Extract Arguments
def extract_arguments(fh):
N, x = map(int, fh.readline().strip().split())
a = list(map(int, fh.readline().strip().split()))
return N, x, a