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

Cereal 2

Silver II 실버 II
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

Farmer John's cows like nothing more than cereal for breakfast! In fact, the
cows have such large appetites that they will each eat an entire box of cereal
for a single meal.

The farm has recently received a shipment with \(M\) different types of cereal
\((2\le M\le 10^5)\). Unfortunately, there is only one box of each cereal! Each
of the \(N\) cows \((1\le N\le 10^5)\) has a favorite cereal and a second favorite
cereal. When given a selection of cereals to choose from, a cow performs the
following process:

  1. If the box of her favorite cereal is still available, take it and leave.
  2. Otherwise, if the box of her second-favorite cereal is still available, take it and leave.
  3. Otherwise, she will moo with disappointment and leave without taking any cereal.

Find the minimum number of cows that go hungry if you permute them optimally.
Also, find any permutation of the \(N\) cows that achieves this minimum.

Problem credits: Dhruv Rohatgi

제약

SCORING

  • In \(4\) out of \(14\) test cases, \(N,M\le 100\).
  • In \(10\) out of \(14\) test cases, no additional constraints.

Problem credits: Dhruv Rohatgi

입력 형식

The first line contains two space-separated integers \(N\) and \(M.\)

For each \(1\le i\le N,\) the \(i\)-th line contains two space-separated integers
\(f_i\) and \(s_i\) (\(1\le f_i,s_i\le M\) and \(f_i\neq s_i\)) denoting the favorite
and second-favorite cereals of the \(i\)-th cow.

출력 형식

Print the minimum number of cows that go hungry, followed by any permutation of
\(1\ldots N\) that achieves this minimum. If there are multiple permutations, any
one will be accepted.

예제 1
입력
8 10
2 1
3 4
2 3
6 5
7 8
6 7
7 5
5 8
출력
1
1
3
2
8
4
6
5
7
설명

In this example, there are \(8\) cows and \(10\) types of cereal.

Note that we can effectively solve for the first three cows independently of
the last five, since they share no favorite cereals in common.

If the first three cows choose in the order \([1,2,3]\), then cow \(1\) will choose
cereal \(2\), cow \(2\) will choose cereal \(3\), and cow \(3\) will go hungry.

If the first three cows choose in the order \([1,3,2]\), then cow \(1\) will choose
cereal \(2\), cow \(3\) will choose cereal \(3\), and cow \(2\) will choose cereal \(4\);
none of these cows will go hungry.

Of course, there are other permutations that result in none of the first three
cows going hungry. For example, if the first three cows choose in the order
\([3,1,2]\) then cow \(3\) will choose cereal \(2\), cow \(1\) will choose cereal \(1\),
and cow \(2\) will choose cereal \(3\); again, none of cows \([1,2,3]\) will go
hungry.

It can be shown that out of the last five cows, at least one must go hungry.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2021-2022 > January > Silver

태그

평가 및 의견

Cereal 2

개요
출제자 난이도 Silver II 실버 II 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

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

풀이 제출

Cereal 2

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