포럼
문제 USACO0383

역위 균형 맞추기

설명

베시와 엘시는 길이 \(2N\)인 불리언 배열 \(A\) (\(1 \leq N \leq 10^5\)) 위에서 게임을 하고 있었다. 베시의 점수는 \(A\)의 앞쪽 절반에 있는 역위(inversion)의 수이고, 엘시의 점수는 \(A\)의 뒤쪽 절반에 있는 역위의 수였다. 역위란 \(i이면서 \(A[i]=1\)이고 \(A[j]=0\)인 원소 쌍을 말한다. 예를 들어, 0들의 블록 뒤에 1들의 블록이 오는 배열에는 역위가 없고, \(X\)개의 1 블록 뒤에 \(Y\)개의 0 블록이 오는 배열에는 \(XY\)개의 역위가 있다.

농부 존이 우연히 게임판을 발견했는데, 게임이 무승부처럼 보이게 만들기 위해 필요한 인접 원소 간 교환의 최소 횟수가 궁금해졌다. 농부 존이 이 질문의 답을 알아내는 것을 도와주자.

문제 제공: Dhruv Rohatgi

제약

문제 제공: Dhruv Rohatgi

입력 형식

첫째 줄에 \(N\)이 주어지고, 다음 줄에 0 또는 1인 \(2N\)개의 정수가 주어진다.

출력 형식

게임을 무승부로 만들기 위해 필요한 인접 교환의 횟수를 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 balance.in · 출력을 쓸 파일 balance.out
예제 1
입력
5
0 0 0 1 0 1 0 0 0 1
출력
1
설명

In this example, the first half of the array initially has \(1\) inversion, and
the second half has \(3\) inversions. After swapping the \(5\)th and \(6\)th bits with
each other, both subarrays have \(0\) inversions.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2018-2019 > US Open > Gold

태그

평가 및 의견

Balancing Inversions

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Balancing Inversions

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (balance.in / balance.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8