[Codeforces] 750A – New Year and Hurry
http://codeforces.com/contest/750/problem/A Limak sẽ tham gia vào một cuộc thi vào ngày cuối cùng của năm 2016. Cuộc thi sẽ bắt đầu lúc 20:00 và sẽ kéo dài bốn giờ, chính xác cho đến nửa đêm. Sẽ có n vấn đề, được sắp xếp theo độ khó, ví dụ problem 1 là dễ nhất và problem n là khó ...
http://codeforces.com/contest/750/problem/A
Limak sẽ tham gia vào một cuộc thi vào ngày cuối cùng của năm 2016. Cuộc thi sẽ bắt đầu lúc 20:00 và sẽ kéo dài bốn giờ, chính xác cho đến nửa đêm. Sẽ có n vấn đề, được sắp xếp theo độ khó, ví dụ problem 1 là dễ nhất và problem n là khó nhất. Limak biết anh ta sẽ mất 5*i phút để giải quyết vấn đề thứ i.
Bạn bè của Limak tổ chức tiệc đêm giao thừa của năm mới và Limak muốn có mặt ở đó vào lúc nửa đêm hoặc sớm hơn. Anh ta cần k phút để đi từ nhà của anh ta đến nơi hẹn, anh ta sẽ tham gia cuộc thi tại nhà.
Có bao nhiêu vấn đề mà Limak có thể giải quyết nếu anh ta muốn tham gia buổi tiệc?
Input
Dòng đầu tiên chứa hai số nguyên n và k (1 ≤ n ≤ 10, 1 ≤ k ≤ 240) – số lượng các vấn đề trong cuộc thi và số phút Limak cần để có thể đi dự tiệc.
Output
In một số nguyên, là kết quả bài toán.
Bài này sử dụng công thức tính cấp số cộng và chặt nhị phân để giải quyết
Code tham khảo [Codeforces] 750A – New Year and Hurry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <iostream> using namespace std; int main() { int n,k,dau,cuoi,giua, tmp,res; cin >> n >> k; int s = 240 - k; dau=0; cuoi=n; while (dau<=cuoi) { giua=(dau+cuoi)/2; tmp = 0.5*giua*(10+(giua-1)*5); if (tmp<=s) res=giua; if (tmp > s) cuoi=giua-1; else dau=giua+1; } cout << res; return 0; } |