참고 : 단순히 "친구의 원"을 설치할 수있는 친구, 그 친구가 자신의 원의 한 사람이 될 수 있습니다. 이 개인 나르시스트가 반복적으로 추가 친구의 자신의 원을 소유하지만,하지만 문제는 모든 것을 보장하기 위해 K
친구를 통해 하나의 원은 적어도 두 개의 서로 다른 사람이있다.
어떤 친구 순차적으로 입력이 사람들에게 잘 생긴 출력. 상기 파티션 ID 사이의 공간, 마지막 행으로 여분의 공간이 없을 수 있습니다. 아무도 잘 생긴없는 경우, 출력 No one is handsome
.
참고 : 같은 사람이 여러 번 조회 할 수 있지만, 출력 전용 한 번
샘플 입력 1 :
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
8
55555 44444 10000 88888 22222 11111 23333 88888
출력 샘플 1 :
10000 88888 23333
샘플 입력 2 :
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
4
55555 44444 22222 11111
출력 샘플 2 :
No one is handsome
하나는 단순히 표시되지 않고, 하나는 친구의 자신의 원이며,이있는 친구도 유의하십시오
이 테마는 맵을 사용뿐만 아니라 디엠 퍼시스의 비 정렬 된 배열을 포함한다 (종류의, 다음, 그것은 세트에 직접 또는 배열에 고유 한 작업입니다)
비는-종류의 배열 당신은 그것을 표시해야합니다.
코드 :
1 #INCLUDE <비트 / stdc ++ H.>
2 사용 공간은 수 std;
3 CONST INT maxn 1E5 + = 10 ;
4 CONST INT INF = 0x3f3f3f3f ;
5
6 문자열 NUM [maxn];
7 문자열 ANS [maxn];
8
9 지도 < 문자열 , INT > m, F;
10
(11) INT의 주 ()
12 {
13 INT N;
14 는 scanf ( " %의 D ' , N);
15 대 ( INT I = 1. ; I <= N-; I ++ )
16 {
17. INT의 X;
18이다 는 scanf ( " %의 D " , 및 , X)
. 19 문자열 CNT;
20 인 위해 ( INT J = 1. , J <= X; ++ J )
(21)는 {
22는 CIN >> CNT;
23은 IF (X == 1 && m [CNT] == 0 ) // 오직 하나, 또는이 경우에는 없음
24 m [CNT] = INF]
25 다른 m [CNT] ++ ;
26이다 }
27 }
28 INT의 Q,
29 는 scanf ( " %의 D ' , Q)
(30) INT K = 0 ;
31이다 위해 ( INT I = 1. ; I <= Q; I ++) { // 재 배열 질의
32 문자열 & lt; 화학식
(33)는 CIN >> & lt; 화학식
(34)는 IF (F [R & LT] == 0 ) {
35 F [R & LT] = 1이다. ] // 태그
36 NUM [K ++ =아르 자형;
37 }
38 }
39 INT를 L = 0 ;
40 대 ( INT 난 = 1 ; I <= K; I ++ ) {
41 의 경우 (m [NUM [I]] == 0 || m [NUM [I]] == INF)
42 ANS [++ L = NUM [I]; // 存到里ANS
(43) }
(44) 의 경우 (L == 0 ) COUT << " 아무도 생긴 없다 " << ENDL;
45 다른 {
46 대 ( INT I = 1나는 <L; I ++ )
47 COUT << ANS [I] << " " ;
48 COUT << ANS [L] << ENDL;
49 }
50 }