PAT-乙-1072 1072 開學寄語 (20 分)
阿新 • • 發佈:2018-11-03
程式碼
#include <iostream> using namespace std; int main() { int N, M; scanf("%d %d", &N, &M); int a[10000] = {0}; for(int i=0; i<M; i++) { int t; scanf("%d", &t); a[t] = 1; } int sum1 = 0; int sum2 = 0; for(int i=0; i<N; i++) { char ch[5]; int num; scanf("%s %d", ch, &num); bool flag = false; for(int j=0; j<num; j++) { int tmp; scanf("%d", &tmp); if(!flag && a[tmp]==1) { flag = true; sum1++; sum2++; printf("%s: %04d", ch, tmp); } else if(a[tmp]==1) { sum2++; printf(" %04d", tmp); } } if(flag) { cout<<endl; } } printf("%d %d\n", sum1, sum2); return 0; }
註解
1、學會用flag標誌處理問題。
2、用a[10000]陣列表示4位整數,每個陣列下標對應一個整數,這樣索引的速度快,方便查詢。
3、注意輸出格式。不要忘記前導0.