Trao Huy Chương BeRC
Nộp bài giải
Điểm:
4,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Một kỳ thi lập trình vừa kết thúc với thí sinh tham gia. Bảng xếp hạng đã được sắp xếp giảm dần theo số bài giải được: thí sinh đứng thứ giải được bài, và .
Ban giám khảo cần phân phối huy chương vàng, bạc, đồng. Gọi số huy chương mỗi loại lần lượt là , , . Quy chế trao giải gồm các điều kiện sau, tất cả phải đồng thời được thoả mãn:
- Mỗi loại huy chương phải được trao ít nhất một chiếc: , , .
- Số huy chương vàng phải nhỏ hơn nghiêm ngặt số huy chương bạc và số huy chương đồng: và (không có ràng buộc giữa và ).
- Mỗi thí sinh được vàng phải giải được nhiều hơn nghiêm ngặt so với mọi thí sinh được bạc.
- Mỗi thí sinh được bạc phải giải được nhiều hơn nghiêm ngặt so với mọi thí sinh được đồng.
- Mỗi thí sinh được đồng phải giải được nhiều hơn nghiêm ngặt so với mọi thí sinh không được huy chương.
- Tổng số người được huy chương không vượt quá một nửa tổng số thí sinh, tức .
Ban giám khảo muốn trao huy chương cho càng nhiều thí sinh càng tốt (tức tối đa hoá ) sao cho tất cả các điều kiện trên đều được thoả mãn. Hãy giúp tìm một cách trao huy chương như vậy.
Dữ liệu vào
Dòng đầu chứa số nguyên () — số test trong dữ liệu vào. Sau đó là test.
Mỗi test gồm hai dòng:
- Dòng thứ nhất chứa số nguyên () — số thí sinh.
- Dòng thứ hai chứa số nguyên (), đã sắp xếp giảm dần: .
Dữ liệu ra
In ra dòng, dòng thứ là kết quả của test thứ .
Mỗi kết quả gồm ba số nguyên không âm , , :
- In ra nếu không tồn tại cách trao huy chương thoả mãn mọi điều kiện.
- Ngược lại, in ra ba số dương , , — số huy chương vàng, bạc, đồng có thể trao, với lớn nhất có thể. Nếu có nhiều đáp án cùng tối ưu, in ra một đáp án bất kỳ.
Ràng buộc
- Tổng các trên mọi test không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 12 5 4 4 3 2 2 1 1 1 1 1 1 4 4 3 2 1 1 1000000 20 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 32 64 64 63 58 58 58 58 58 37 37 37 37 34 34 28 28 28 28 28 28 24 24 19 17 17 17 17 16 16 16 16 11 |
1 2 3 0 0 0 0 0 0 1 2 7 2 6 6 |
Test 1: trao vàng (người giải bài), bạc (hai người giải bài), đồng (ba người giải hoặc bài). Tổng . Mọi khác đạt cùng tổng cực đại đều được chấp nhận. Test 2, 3: không thể vì phải nhưng không vượt quá . Test 4: tổng tối đa là ; các đáp án hoặc cũng hợp lệ. Test 5: tổng tối đa là . |
| 1 12 7 5 5 5 3 2 1 1 1 1 1 1 |
1 3 2 | Vàng = (); bạc = ba thí sinh giải bài (); đồng = hai thí sinh giải và bài (). Tổng đạt cực đại. Các điều kiện , , và các tầng điểm phân tách nghiêm ngặt đều thoả. |
Bình luận