포럼
문제 USACO0275

소가 길을 건넌 이유 III

설명

농부 존(Farmer John)의 농장 구조는 꽤 독특해서, 소들이 낮 동안 풀을 뜯는 중심 들판의 둘레를 커다란 원형 도로가 둘러싸고 있다. 매일 아침 소들은 들판으로 가는 길에 이 도로를 건너고, 매일 저녁 들판을 떠나 헛간으로 돌아갈 때 다시 도로를 건넌다.

알다시피 소는 습관의 동물이라, 매일 같은 방식으로 도로를 건넌다. 각 소는 들판에서 나오는 지점과 다른 지점으로 들판에 들어가며, 이 모든 건너는 지점들은 서로 다르다. 농부 존은 정수 ID \(1 \ldots N\)으로 편리하게 식별되는 \(N\)마리의 소를 기르고 있으므로, 도로 둘레에는 정확히 \(2N\)개의 건너는 지점이 있다. 농부 존은 원을 따라 시계 방향으로 훑으며 각 건너는 지점의 소 ID를 적어서 이 지점들을 간결하게 기록하고, 결국 각 수가 정확히 두 번씩 나타나는 \(2N\)개의 수로 이루어진 수열을 얻는다. 어느 지점이 입장 지점이고 어느 지점이 퇴장 지점인지는 기록하지 않는다.

건너는 지점들의 지도를 보며, 농부 존은 여러 소 쌍이 낮 동안 서로 몇 번이나 경로가 교차할지 궁금해한다. 소 \(a\)의 입장 지점에서 퇴장 지점으로 가는 경로가 소 \(b\)의 입장 지점에서 퇴장 지점으로 가는 경로와 반드시 교차해야 한다면, 소 쌍 \((a,b)\)를 "교차하는" 쌍이라고 부른다. 교차하는 쌍의 총 수를 세는 것을 도와주자.

문제 제공: Brian Dean

제약

문제 제공: Brian Dean

입력 형식

입력의 첫째 줄에는 \(N\) (\(1 \leq N \leq 50,000\))이 주어지고, 다음 \(2N\)개의 줄에는 들판 둘레의 입장 및 퇴장 지점 순서대로 소의 ID가 주어진다.

출력 형식

교차하는 쌍의 총 수를 출력한다.

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:
입력을 읽을 파일 circlecross.in · 출력을 쓸 파일 circlecross.out
예제 1
입력
4
3
2
4
4
1
3
2
1
출력
3
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2016-2017 > February > Gold

태그

평가 및 의견

Why Did the Cow Cross the Road III

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

Log in to rate problems.

개별 의견

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

풀이 제출

Why Did the Cow Cross the Road III

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