DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제문제집
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

OrBiTal (hard)

문제로 돌아가기

해설

S=∑i=1NAiS=\sum_{i=1}^{N}A_iS=∑i=1N​Ai​라 하자. 세기 KKK인 입자 하나는 총 K2K^2K2를 더하므로 K2∣SK^2\mid SK2∣S인 후보만 확인한다.

XiX_iXi​를 iii번 오비탈에 넣은 입자 수라 하고 인덱스를 1,…,N1,\ldots,N1,…,N에서 순환시킨다. Ci=Ai−1−2Ai+A를 계산하면 이다. 개의 순환을 각각 길이 의 수열로 펼친다. 차분을 한 번 적분하고 순환 조건으로 초기 기울기를 정한 뒤 다시 적분한다. 순환마다 기본 해에 상수를 더하는 자유도가 남는다.

기본 해 전체의 합을 BBB, 각 순환의 최솟값의 부호를 바꾸어 더한 값을 LLL이라 하자. 필요한 입자 수는 P=S/K2P=S/K^2P=S/K2이다. (P−B)(P-B)(P가 의 배수이고 일 때 가능하다.

후보 수를 DDD라 하면 시간 복잡도는 O(ND+N)O(ND+N)O(ND+N), 공간 복잡도는 O(N)O(N)O(N)이다.

증명

삼각형 커널의 이차 차분은 중앙에 −2-2−2, 양쪽으로 KKK칸 떨어진 곳에 111만 남긴다. 한 순환에서 pt=yt−yt−1p_t=y_t-y_{t-1}pt​=라 두면 이다. 이어야 기울기가 순환하고, 이 초기 기울기를 유일하게 결정한다. 정수 기울기가 존재하지 않으면 불가능하다.

서브태스크 1에서는 입자의 세기가 최댓값 max⁡Ai≤3\max A_i\leq3maxAi​≤3보다 클 수 없으므로 세 후보만 확인한다.

서브태스크 2에서 공차를 ddd라 하자. d=0d=0d=0이면 gcd⁡(이 의 배수인지 확인한다. 이면 이어야 한다. , 라 두면 기본 해의 합은 이고, 최소 비음수 해의 합은 이다. 따라서 및 만 확인하여 후보 하나를 에 처리한다.

i+1C_i=A_{i-1}-2A_i+A_{i+1}
Ci​=Ai−1​−2Ai​+Ai+1​
Ci=Xi−K−2Xi+Xi+KC_i=X_{i-K}-2X_i+X_{i+K}Ci​=Xi−K​−2Xi​+Xi+K​
g=gcd⁡(N,K)g=\gcd(N,K)g=gcd(N,K)
m=N/gm=N/gm=N/g
−
B)
mmm
(P−B)/m≥L(P-B)/m\geq L(P−B)/m≥L
yt​−
yt−1​
pt+1−pt=ctp_{t+1}-p_t=c_tpt+1​−pt​=ct​
∑ct=0\sum c_t=0∑ct​=0
∑pt=0\sum p_t=0∑pt​=0

두 번째 적분으로 얻는 정수 해는 같은 순환에 상수를 더하는 것 외에는 유일하다. 그 상수는 기본 해의 최솟값의 부호를 바꾼 값 이상이어야 하고, 입자 수를 mmm배만큼 증가시킨다. 따라서 제시한 합동 조건과 하한이 비음수 정수 해의 필요충분조건이다. 이 해가 만드는 세기와 AAA는 이차 차분과 합이 같다. 원 위에서 이차 차분이 000인 수열은 상수이므로 두 세기는 같다.

등차수열의 공차가 d≠0d\ne0d=0이면 C1=NdC_1=NdC1​=Nd, CN=−NdC_N=-NdCN​=−Nd만 000이 아니다. 두 위치가 서로 다른 순환에 속하면 각 순환의 CCC의 합이 000일 수 없으므로 gcd⁡(N,K)=1\gcd(N,K)=1gcd(N,K)=1이어야 한다. 위치 111에서 출발하여 KKK씩 이동할 때 위치 NNN은 r≡−K−1(modN)r\equiv-K^{-1}\pmod Nr≡−K−1(modN)번째에 나타난다. 이 순환의 기본 해는 높이 h=dr(N−r)h=dr(N-r)h=dr(N−r)인 두 선형 구간으로 이루어져 합이 B=Nh/2B=Nh/2B=Nh/2이고 최솟값은 min⁡(0,h)\min(0,h)min(0,h)이다. 따라서 최소 비음수 해의 합이 ∣B∣|B|∣B∣이며, 상수를 더해 늘릴 수 있는 합은 NNN의 배수이다. d=0d=0d=0이면 모든 순환의 기본 해가 000이므로 필요한 조건은 m∣Pm\mid Pm∣P, 즉 K2∣gcd⁡(N,K)A1K^2\mid\gcd(N,K)A_1K2∣gcd(N,K)A1​이다.

N,K)A1\gcd(N,K)A_1
gcd(N,K)A1​
K2K^2K2
d≠0d\ne0d=0
gcd⁡(N,K)=1\gcd(N,K)=1gcd(N,K)=1
r≡−K−1(modN)r\equiv-K^{-1}\pmod Nr≡−K−1(modN)
1≤r<N1\leq r<N1≤r<N
B=dNr(N−r)/2B=dNr(N-r)/2B=dNr(N−r)/2
∣B∣|B|∣B∣
P≥∣B∣P\geq|B|P≥∣B∣
P≡B(modN)P\equiv B\pmod NP≡B(modN)
O(log⁡N)O(\log N)O(logN)

Solution written by GPT6