#238. CREAM - Vui chơi có thưởng

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho hai dãy số nguyên dương A B , mỗi dãy gồm n phần tử: A = (a_1, a_2, \dots, a_n) B = (b_1, b_2, \dots, b_n) .

Bạn hãy chọn ra một tập hợp các chỉ số S (là một tập con của \{1, 2, \dots, n\} ) sao cho tổng các phần tử trong dãy A tại các chỉ số này lớn hơn thực sự tổng các phần tử trong dãy B tại các chỉ số tương ứng.

Nói cách khác, hãy tìm tập S sao cho:

\sum_{i \in S} a_i > \sum_{i \in S} b_i

Yêu cầu: Hãy xác định số lượng phần tử lớn nhất có thể có của tập hợp S (tức là tối đa hóa |S| ).

Dữ liệu:

  • Dòng đầu tiên là số nguyên dương n\ (n \le 100000) là số lượng phần tử của mỗi dãy;
  • Dòng thứ hai ghi n số nguyên a_1, a_2, \dots, a_n\ (1 \le a_i \le 10^9\ \forall i=1..n) ;
  • Dòng thứ ba ghi n số nguyên b_1, b_2, \dots, b_n\ (1 \le b_i \le 10^9\ \forall i=1..n) .

Kết quả:

  • Ghi ra một số nguyên duy nhất là số lượng phần tử lớn nhất tìm được.

Ví dụ:

Dữ liệu:

3
100 100 5
2 2 1000

Kết quả:

2