Một phần mềm nhỏ đã được người phân tích thiết kế chia làm \(n\) công đoạn và giao cho hai lập trình viên thực hiện. Mỗi lập trình viên sẽ lần lượt viết các đoạn mã chương trình được giao một cách tuần tự và tiến hành song song với lập trình viên còn lại (Bởi phong cách lập trình kiểu Úc yêu cầu tuân thủ tuyệt đối thiết kế ban đầu, không được bắt người kia làm theo ý mình làm ảnh hưởng tới tiến độ).
Trong hai lập trình viên, có một người chuyên lập trình PASCAL và một người chuyên lập trình C++. Điều đó không gây khó khăn nhiều bởi họ sẽ dịch các đoạn trình dưới dạng các thư viện liên kết ngoài và sau đó chỉ cần lắp ráp lại là xong. Tuy nhiên, có thể có những công đoạn mà lập trình viên PASCAL viết nhanh hơn và cũng có thể có những công đoạn khác anh ta viết chậm hơn lập trình viên C++.
Yêu cầu: Cho biết thời gian dự kiến để lập trình viên PASCAL viết đoạn thứ \(i\) là \(p_i\) phút, thời gian dự kiến để lập trình viên C++ viết đoạn chương trình thứ \(j\) là \(c_j\) phút. Hãy phân công mỗi đoạn cho đúng một người viết để thời gian hoàn thành phần mềm là nhanh nhất.
Input
- Dòng đầu tiên chứa số \(n\) \((1 \leq n \leq 100)\).
- Các dòng tiếp theo chứa các số từ \(p_1\) đến \(p_n\) \((1 \leq p_i \leq 10000)\) rồi từ \(c_1\) đến \(c_n\) \((1 \leq c_i \leq 10000)\) theo đúng thứ tự đó.
Output
- Ghi thời gian cần thiết hoàn tất cả \(n\) công đoạn
Example
Test 1
Input
6
10 100 30 50 50 80
100 30 40 40 60 90
Output
130
Note
- \(1\), \(3\), \(6\): Số hiệu giao LTV Pascal thực hiện.
- \(2\), \(4\), \(5\): Số hiệu giao LTV C++ thực hiện
Bình luận
khoa2008 if-test. Một lần nữa là có chuyện với admin nghe
7 bình luận nữa