PAT 乙级 1075

发布时间:2026/5/19 2:15:55

PAT 乙级 1075 这种题感觉得多背几遍熟悉套路写法。这题的输入有一个坑输入要直接使用cin用scanf (%05d) 反而容易错这样写最后一个地址 -1 就无法输入。#includebits/stdc.h using namespace std; int main() { int first, n, k, address; cin first n k; vectorint data(100005), next(100005),list(n); for(int i 0; i n; i ) cin address data[address] next[address]; int sum 0; while(first ! -1) { list[sum ] first; first next[first]; } vectorint list2(sum); int m 0; for(int i 0; i sum; i ) { if(data[list[i]] 0) { list2[m ] list[i]; } } for(int i 0; i sum; i ) { if(data[list[i]] 0 data[list[i]] k) list2[m ] list[i]; } for(int i 0; i sum; i ) { if(data[list[i]] k) list2[m ] list[i]; } for(int i 0;i sum - 1; i ) printf(%05d %d %05d\n, list2[i], data[list2[i]], list2[i 1]); printf(%05d %d -1\n, list2[sum - 1], data[list2[sum - 1]]); return 0; }

相关新闻