[PAT] 클래스 1039 코스 목록 학생 (25 점)에 대한 (지도에 중첩 벡터, 세그먼트 잘못된 이유를 알 수 없음)

질문의 의미 :

과정 학생 두 양의 정수 K는 각각 N과 (N <= 40000, K <= 2,500)의 수를 입력한다. 다음으로, 각 코스의 ID를 입력 물론 정보 K를 입력 한 다음 학생들은 다음과 같은 ID를 입력, 많은 학생들이이 과정을 선택하는 방법을 입력합니다. 마지막으로 물었다 N 시간, 얼마나 많은 클래스를 선택한 학생의 학생 ID 출력, 선택한 과정의 출력의 번호를 입력 오름차순으로 출력 ID의 과정.

장난:

첫 번째 5 개의 데이터 포인트가 학생들이 벡터지도에 중첩 된 벡터에 학생 선택 과정에 저장된 ID에 해당하는 재 매핑 메모리를지도했다, 실수를 표시, 문제, 매핑 프로세스 포인터 의심되는 드리프트의 실수가 없을 것? ? ?

코드 :

#DEFINE HAVE_STRUCT_TIMESPEC
#INCLUDE <. 비트 / stdc ++ H>
사용 스페이스 성병;
unordered_map도 <문자열, 벡터 <INT>> 이름;
문자열의;
INT 주 () {
IOS :: sync_with_stdio (거짓);
cin.tie (NULL);
cout.tie (NULL);
N INT, K;
CIN >> N >> K;
INT의 X, NUM;
INT CNT = 0;
대해 INT (I = 1; K = 난을 <; I ++) {
CIN X >> >> NUM;
대 (INT의 J = 1; J <NUM =; J ++) {
CIN >> S;
경우 (name.find (S) == name.end ())
이름 [S] = 벡터 <INT> {X};
다른
이름 [S] .push_back (X);
}
}
문자열 SS;
경우 (; 나는 = <N; I = 1 값 int I ++) {
CIN >> SS;
자동 및 세탁 = 이름 [SS];
COUT <<
종류 (idd.begin (), idd.end ());
(자동 그것을 : IDD) 용
COUT << ''<< 그;
COUT << "\ n을";
}
0을 반환;
}

추천

출처www.cnblogs.com/ldudxy/p/11588438.html