水銀メモ_________φ

外部記憶装置として再開

CodeForces #266_Div2 : B. Wonder Room

Problem - B - Codeforces

問題

入力として、 n, a, bが与えられる。
 a, b はそれぞれ部屋の縦、横の長さであり、部屋の面積を  6n 以上にしたい。
 a' *  b' >= 6n を満たすように、 a, b の長さを拡張した時の 最小の面積を求めよ。

落とし穴が多く、roomでは解けた人が一人もいなかった。

解法

各値の制約が  1~10^9 と大きいため長さを全通り試すことはできない。

作りたい面積が  6n 以上 ということから、 a, bの内小さい方は必ず \sqrt{6n} 以下になることが分かる。
よってa, bの内小さい方(mとする)を  \sqrt{6n} まで探索すれば良い。 大きい方の辺は \lceil\frac{6n}{m}\rceil となる。

計算量はO(\sqrt{n})

コード