Orig Description
Score : 300 points
Problem StatementThere are 3N participants in AtCoder Group Contest.
The strength of the i-th participant is represented by an integer a_i.
They will form N teams, each consisting of three participants.
No participant may belong to multiple teams.
The strength of a team is defined as the second largest strength among its members.
For example, a team of participants of strength 1, 5, 2 has a strength 2, and a team of three participants of strength 3, 2, 3 has a strength 3.
Find the maximum possible sum of the strengths of N teams.
Constraints
1 ≤ N ≤ 10^5
1 ≤ a_i ≤ 10^{9}
a_i are integers.
InputInput is given from Standard Input in the following format:
N
a_1 a_2 ... a_{3N}
OutputPrint the answer.
Sample Input 12
5 2 8 5 1 5
Sample Output 110
The following is one formation of teams that maximizes the sum of the strengths of teams:
Team 1: consists of the first, fourth and fifth participants.
Team 2: consists of the second, third and sixth participants.
Sample Input 210
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
Sample Output 210000000000
The sum of the strengths can be quite large.
Extracted Specification
An integer N (1 ≤ N ≤ 10^5), representing some quantity or size.
A list of integers A of size 3N, where each integer is between 1 and 10^9.
### Example Input:
```
2
5 2 8 5 1 5
```
### Function Signature:
Write a function f(N, A) that takes in the input.
```python
def f(N: int, A: List[int]):
'''
N: an integer
A: a list of integers
'''
```
Test Case Generator
Certainly! Here is a test case generator for the given competitive programming problem about forming teams:
```python
import random
def tcgen():
N = random.randint(1, 10**5)
a = [random.randint(1, 10**9) for _ in range(3 * N)]
return N, a
# Function to print the test cases in the required format
def print_test_case(N, a):
print(N)
print(' '.join(map(str, a)))
# Generate and print a sample test case
if __name__ == "__main__":
N, a = tcgen()
print_test_case(N, a)
```
Explanation:
1. `N` is randomly chosen between 1 and \(10^5\).
2. An array `a` of length `3 * N` is created with each element randomly chosen between 1 and \(10^9\).
3. The `print_test_case` function formats the generated test case to match the input format provided in the problem statement.
You can run this script to generate test cases for the problem. Adjust the random seed if you need reproducible results, or remove it for more randomness.
Extract Arguments
def extract_arguments(fh):
N = int(fh.readline().strip())
A = list(map(int, fh.readline().strip().split()))
return N, A