RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
KOI00051

제자리

Bronze I 브론즈 I
난이도
2s
시간 제한
1024MB
메모리 제한
7
맞았습니다!!
7
제출 수
100.0%
정답률
레이팅

의견: 0

설명

\(N\)장의 카드가 좌우 일렬로 놓여있다. 각 카드에는 하나의 정수가 적혀있는데, 왼쪽에서 \(i\)번째 카드에 적혀있는 정수는 \(A_i\)다. (\(1 ≤ i ≤ N\))

여러분은 \(N\)장의 카드 중 몇 장을 골라 제거할 수 있다. 이때, 제거되지 않은 카드의 순서는 유지된다.

예를 들어, \(N = 5\), \(A = [3, 1, 4, 1, 5]\)라고 하자. 여러분이 두 번째와 다섯 번째 카드를 제거한다면, 남은 카드들에 적혀있는 수들은 왼쪽부터 차례대로 \(3, 4, 1\)이 된다. 즉, 남은 카드들 중 왼쪽에서 세 번째 카드에 적혀있는 수는 \(1\)이 된다.

몇 장의 카드를 골라 제거한 후, 남은 카드들 중 왼쪽에서 \(x\)번째 카드에 적혀있는 수가 정확히 \(x\)라면, 그 카드를 제자리 카드라고 부르자. 모든 남은 카드가 제자리 카드라면, 제자리 상태가 되었다고 하자.

예를 들어, \(N = 8\), \(A = [6, 1, 2, 3, 2, 4, 5, 10]\)라고 하자. 여러분이 첫 번째, 다섯 번째, 여덟 번째 카드를 제거하면, 남은 카드들에 적혀있는 수들은 차례대로 \(1, 2, 3, 4, 5\)가 된다. 이때, 모든 남은 카드는 제자리 카드가 되며, 따라서 제자리 상태가 되었다.

만약, \(N = 6\), \(A = [3, 4, 6, 10, 2, 5]\)라면, 제자리 상태가 되기 위해서는 모든 카드를 제거하여 남은 카드가 하나도 없도록 해야 한다.

모든 카드를 제거하면 항상 제자리 상태가 됨에 유의하라.

최소 몇 장의 카드를 제거해야 제자리 상태가 되는지 계산하는 프로그램을 작성하라.

제약
  • \(1 \le N \le 250\,000\)
  • 모든 \(i\) (\(1 \le i \le N\))에 대해, \(1 \le A_i \le 250\,000\).
입력 형식

첫 번째 줄에 정수 \(N\)이 주어진다.

두 번째 줄에 \(N\) 개의 정수 \(A_1, \dots , A_N\)이 차례대로 주어진다.

출력 형식

첫 번째 줄에 답을 출력한다.

서브태스크
서브태스크점수설명

1

5점

\(N = 1\).

2

16점

\(N \le 20\).

3

28점

\(N \le 1\,500\).

4

51점

추가 제약 조건 없음.

예제 1
입력
1
1
출력
0
예제 2
입력
8
6 1 2 3 2 4 5 10
출력
3
예제 3
입력
6
3 4 6 10 2 5
출력
6
힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 올림피아드 > 한국정보올림피아드 > KOI 2022 > 2차 대회 > 초등부 1번

평가 및 의견

제자리

개요
출제자 난이도 Bronze I 브론즈 I 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

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

풀이 제출

제자리

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8