Tư duy kiểu úc

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 30.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Một phần mềm đã đượ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 tì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 chương 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.

Ràng buộc ~n~ ≤ 100, ~p_i~, ~c_i~ ≤ 30000

Dữ liệu vào:

  • Dòng 1 chứa số ~n~
  • Các dòng tiếp theo chứa các số từ ~p_1~ đến ~p_n~ rồi từ ~c_1~ đến ~c_n~ theo đúng thứ tự đó.

Kết quả:

  • Dòng 1 ghi thời gian cần thiết hoàn tất cả ~n~ công đoạn
  • Dòng 2 ghi số hiệu các công đoạn được giao cho lập trình viên PASCAL thực hiện
  • Dòng 3 ghi số hiệu các công đoạn được giao cho lập trình viên C++ thực hiện.

Ví dụ:

INP

6
10 100 30 50 50 80
100 30 40 40 60 90

OUT

130
1 3 6
2 4 5

Comments

Please read the guidelines before commenting.


There are no comments at the moment.