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

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

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

수열 정렬하기 5

문제로 돌아가기

해설

초기 정렬도를 SSS, 엄격한 역전 쌍의 수를 DDD라 하자. 인접한 역전 쌍을 바꾸면 정렬도가 111 증가한다. K≤DK\leq DK≤D이면 삽입 정렬의 교환을 KKK번 수행하여 S+KS+KS+K를 달성한다. 그보다 클 때는 먼저 정렬한다. 같은 값이 있으면 정렬 후 인접하게 된 같은 값끼리 남은 횟수만큼 교환한다. 모두 다르면 같은 위치를 두 번 교환하여 두 번씩 소모하고, 남은 횟수가 홀수이면 정렬도 111을 잃는다. 모든 값이 다를 때는 순열의 홀짝성 때문에 이 손실이 불가피하다.

시간은 O(N2+K)O(N^2+K)O(N2+K), 정렬도는 최대 499500499500499500이다. 작은 서브태스크는 연산 순서를 모두 탐색하되 교환 시 정렬도 변화를 O(1)O(1)O(1)에 계산한다. 검사기는 정확히 KK개의 유효한 인덱스를 요구하고, 최댓값은 맞지만 결과 정렬도가 다른 경우에만 를 준다.

K
50%50\%50%