Gửi bài giải
Điểm:
5,00
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C++
Cho dãy số ~A~ gồm ~3 * N~ phần tử. Hãy xóa ~N~ phần tử khỏi ~A~ để tạo thành một dãy ~A'~ sao cho điểm số của ~A'~ là lớn nhất có thể.
Diểm số dãy ~A'~ bằng tổng ~N~ phần tử đầu tiên của dãy ~A'~ trừ đi tổng ~N~ phần tử cuối cùng của dãy ~A'~
Input
- Dòng đầu tiên chứa số nguyên dương ~N~ ~(1 \le N \le 10^5)~,
- Dòng thứ hai chứa ~3 * N~ số nguyên ~a_1, a_2, a_3, …, a_{3N}~.~(1 \le a_i \le 10^9)~ mô tả dãy ~A~.
Output
- In ra một số nguyên duy nhất là điểm số của dãy ~A'~ cần tạo
Scoring
- Subtask ~1~ (~30\%~ số điểm): ~N\le 7~.
- Subtask ~2~ (~30\%~ số điểm): ~N\le 1000~.
- Subtask ~3~ (~40\%~ số điểm): Không có ràng buộc gì thêm
Ví dụ
Input
2
6 2 7 4 3 8
Output
6
Input
1
4 5 3
Output
2
Giải thích ví dụ
Trong ví dụ đầu tiên, ta có thể xóa đi phần tử thứ ~2~ và thứ ~6~ để tạo thành dãy ~A' = [6, 7, 4, 3]~. Điểm số của dãy ~A'~ này là ~(6 + 7) - (4 + 3) = 6~
Trong ví dụ thứ hai, ta có thể xóa đi phần tử thứ 1 để tạo thành dãy ~A' = [5, 3]~. Điểm số của dãy ~A'~ này là ~5 - 3 = 2~
Bình luận