BOJ 32765 연봉 998244353원 주세요

BOJ 32765 연봉 998244353원 주세요

문제 링크:

문제 내용

생략

문제 풀이

스포일러

주어진 XX에 대해 a0=Xa_0 = X로 두고, ii번 사원이 받을 연봉을 aia_i라고 합시다. 이 문제를 풀기 위해서는 다음의 관찰이 필요합니다.

  • ai=kia_i = ki일 때 k<ik < i이면, 모든 j>ij > i에 대해서도 aj=kja_j = kj입니다. kikik(i+1)k(i+1)의 차이는 kk이고 이는 i+1i+1의 배수 두 개의 간격보다 작기 때문입니다.
  • 대략 i2Xi \ge \sqrt{2X}이면 위의 식이 성립합니다. aiai1ia_i - a_{i-1} \le i이고, 이 상한을 모두 더하면 대략 X+i22X + \frac{i^2}{2}가 되는데 이것이 i2i^2보다 작아지는 시점이 2X\sqrt{2X} 정도가 됩니다.

따라서, 넉넉잡아 i=105i = 10^5까지는 시뮬레이션을 하고, 그 뒤는 첫 번째 성질을 이용해 바로 구할 수 있습니다.

Last updated on