Editorial for SURAJ


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: Yunan

Nguồn: Free Contest

Trước tiên ta cần tìm số n lớn nhất sao cho cả k cửa sổ đều mở n tab mà không vượt quá bộ nhớ. Tổng bộ nhớ đã được sử dụng là:

\displaystyle S = k(1 + 2 + 3 + ... + n) = k\frac{n(n + 1)}{2}

Dùng tìm kiếm nhị phân ta tìm được số n, sau đó lấy phần dư còn lại của bộ nhớ và chia lấy nguyên cho n + 1. Kết quả cuối cùng là:

\displaystyle nk + \left\lfloor\frac{m - S}{n + 1}\right\rfloor

Độ phức tạp: O(Tlog(m)).


Comments