BOI 2008 - Elections

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Sau cuộc bầu cử quốc hội, các đảng phải chọn một liên minh để thành lập chính phủ. Mỗi đảng giành được một số ghế. Liên minh là một tập con các đảng có tổng số ghế lớn hơn một nửa tổng số ghế quốc hội.

Một liên minh được gọi là dư thừa nếu có thể bỏ đi một đảng mà các đảng còn lại vẫn nắm hơn một nửa số ghế. Một đảng như vậy thực tế không có quyền lực, vì các thành viên khác vẫn có thể tự thông qua luật.

Hãy tìm một liên minh không dư thừa có tổng số ghế lớn nhất có thể.

Dữ liệu vào

Dòng đầu chứa số nguyên \(n\) — số đảng (\(1\le n\le300\)). Các đảng được đánh số từ \(1\) đến \(n\).

Dòng thứ hai chứa \(n\) số nguyên không âm \(a_1,a_2,\ldots,a_n\), trong đó \(a_i\) là số ghế của đảng \(i\). Tổng số ghế dương và không vượt quá \(100\,000\).

Dữ liệu ra

Dòng đầu chứa số nguyên \(k\) — số đảng trong một liên minh không dư thừa có tổng số ghế lớn nhất.

Dòng thứ hai chứa \(k\) chỉ số đôi một khác nhau của các đảng thuộc liên minh. Nếu có nhiều đáp án, có thể in bất kỳ đáp án nào và theo bất kỳ thứ tự nào.

Phân nhóm

  1. 40 điểm: \(n\le20\).
  2. 60 điểm: không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
4
1 3 2 4
Output
2
2 4

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: