problem description
淄博某旅行社每天都要接待來自全國各地的遊客,他們從各個城市來到張店區,遊玩後又去淄博的其他旅遊景點。從各個城市來張店的遊客只是在網上報名,然後旅行社根據統計的人數,用大巴把他們從不同城市拉到張店。在張店玩一天後,這些遊客又要到淄博其他景點玩,所以重新統計到淄川、臨淄、周村、博山去的遊客,用大巴把他們分送過去。
統計這些遊客是很費精力的,但讓電腦做會簡單一些,現在就請你幫忙設計這個程式統計分送的遊客。
input
第一行是乙個正整數n(n <= 100) ,代表網上報名人數。接下來n行,每行包括乙個name(字串,不超過20個字元),來的城市from(字串,英文小寫,不超過20個字元),去的城市to(只有zichuan,linzi,zhoucun,boshan中的乙個),名單順序代表報名順序,也是優先處理順序。
output
對於每個始發城市,先輸出始發城市名,冒號,從此城市來的遊客名單。
對要去的目的地,先輸出目的地城市,冒號,到此城市的遊客名單。目的地城市只有題中已經告訴的四個,並按題中提到的順序輸出,對於沒有要去的城市也要輸出。
在名單前列的人名輸出時要先於在名單後面的。更詳細的輸入輸出見示例。
sample input
6
skym zoucheng linzi
plmm beijing boshan
moon jinan boshan
pc zoucheng zichuan
von shanghai boshan
qq beijing zichuan
sample output
zoucheng : skym pc
beijing : plmm qq
jinan : moon
shanghai : von
zichuan : pc qq
linzi : skym
zhoucun :
boshan : plmm moon von
用map對映為每個始發城市分配id(從0開始,每出現乙個新的城市id+1),把對應的id作為結構體陣列的下標。
id的個數就是始發城市的個數,在結構體裡設定name字串陣列記錄來自該城市的遊客名字,用ind記錄來自該城市的遊客人數。四個到達城市寫到後面沒有用到的結構體裡(從n+1到n+4)。
#include #include #include using namespace std;
struct tript[107];
mapmp;
int main()
t[mp[from]].name[t[mp[from]].ind++] = name;
if(to=="zichuan") t[n+1].name[t[n+1].ind++] = name;
else if(to=="linzi") t[n+2].name[t[n+2].ind++] = name;
else if(to=="zhoucun") t[n+3].name[t[n+3].ind++] = name;
else if(to=="boshan") t[n+4].name[t[n+4].ind++] = name;
//這裡寫成else t[n+4].name[t[n+4].ind++] = name;是會wrong answer的
//可能後台樣例裡不止只有四個城市
for(int i = 0;i < c;i++)
cout << endl;
} for(int i = n+1;i < n+5;i++)
if(i!=n+4) cout << endl;
}}
sdut 2055來淄博旅遊
statistic discuss problem description 淄博某旅行社每天都要接待來自全國各地的遊客,他們從各個城市來到張店區,遊玩後又去淄博的其他旅遊景點。從各個城市來張店的遊客只是在網上報名,然後旅行社根據統計的人數,用大巴把他們從不同城市拉到張店。在張店玩一天後,這些遊客又要...
sdut 2055 來淄博旅遊 結構體
題目鏈結 problem description 淄博某旅行社每天都要接待來自全國各地的遊客,他們從各個城市來到張店區,遊玩後又去淄博的其他旅遊景點。從各個城市來張店的遊客只是在網上報名,然後旅行社根據統計的人數,用大巴把他們從不同城市拉到張店。在張店玩一天後,這些遊客又要到淄博其他景點玩,所以重新...
來淄博旅遊 2055
time limit 1000 ms memory limit 65536 kib problem description 淄博某旅行社每天都要接待來自全國各地的遊客,他們從各個城市來到張店區,遊玩後又去淄博的其他旅遊景點。從各個城市來張店的遊客只是在網上報名,然後旅行社根據統計的人數,用大巴把他們...