Nebius Welcome Round (Div. 1 + Div. 2) - C. Pull Your Luck (1500)
지문만 드럽게 쳐길게 써놨는데
$$
x+\dfrac{p(p+1)}{2} \equiv 0 \pmod n
$$
인 $p$ 가 존재하는지를 찾는 문제이다.
$\displaystyle \sum_{i=1}^{2n}i=n(2n+1)$ 이기 때문에 $n$은 $1$부터 $2n$까지 다더한걸로 무조건 나뉜다.
그니까 $p$를 $1 \to 2n$ 까지만 검사해줘도 무방하다.
그 후로는 주기적으로 $p(p+1)/2 \pmod n$ 이 동일하게 반복되기 때문이다.
void solve() {
int n, x, p;
cin >> n >> x >> p;
for (int i = 1; i <= min(n * 3, p); i++) {
int t = (i * (i + 1) / 2) % n;
if ((x + t) % n == 0) {
cout << "yes\n";
return;
}
}
cout << "no\n";
}
Comments