Hướng dẫn giải của [CSES 1631] Reading Books
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nếu có một cuốn sách dài và thời gian đọc cuốn sách đó lớn hơn tổng thời gian đọc tất cả các cuốn sách còn lại, thì đáp án là ~2x~ trong đó ~x~ là thời gian cần để đọc cuốn sách đó. Trong trường hợp này, Kotivalo có thể đọc cuốn sách dài trước trong khi Justiina đọc tất cả các cuốn sách còn lại. Sau đó, họ đổi vai trò cho nhau.
Ngược lại, đáp án là tổng tất cả thời gian đọc ~t\_1+t\_2+\dots+t\_n~. Trong trường hợp này, Kotivalo có thể đọc tất cả các cuốn sách được sắp xếp theo thời gian đọc từ dài nhất đến ngắn nhất. Justiina làm gần như tương tự nhưng bắt đầu với cuốn sách dài thứ hai và đọc cuốn sách dài nhất sau cùng. Điều này đảm bảo rằng họ không bao giờ đọc cùng một cuốn sách tại cùng một thời điểm.
#include <iostream>
using namespace std;
using ll = long long;
int main() {
int n;
cin >> n;
ll total = 0;
ll longest = 0;
for (int i = 1; i <= n; i++) {
ll x;
cin >> x;
total += x;
longest = max(longest, x);
}
cout << max(total, 2 * longest) << "\n";
}
Chương trình tham khảo
#include <iostream>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
ll total = 0;
ll longest = 0;
for (int i = 1; i <= n; i++) {
ll x;
cin >> x;
total += x;
longest = max(longest, x);
}
cout << max(total, 2 * longest) << "\n";
}
Bình luận