PKU 1805 Friends
http://poj.org/problem?id=1805
レストランにいる人達で、次にどこにいくかを投票して決める。
投票はあるルールに従って、行われる。
これをシミュレートして最終的な行き先を決定しろというような問題。
場合分けゲー。
多少の面倒くささを我慢して頑張る。
main(){ int n; cin>>n; cin.get(); rep(sc,n){ string in; getline(cin,in); stringstream ss(in); set<string> app; int vo[3]={0}; while(ss>>in)app.insert(in); if(app.count("Anne"))vo[0]++; if(app.count("Bob")){ if(app.count("Karin")+(app.count("Dave")|!app.count("Anne")|app.count("Edward"))>1); else if(app.count("Karin"))vo[2]++; else if(app.count("Dave") || app.count("Edward"))vo[1]++; else if(!app.count("Anne"))vo[1]++; } if(app.count("Karin")){ if(app.count("Charly"))vo[2]++; else if(app.count("Anne"))vo[0]++; else vo[1]++; } if(app.count("Charly") && app.count("Anne"))vo[0]++; if(app.count("Edward")){ if(app.count("Anne") && !app.count("Charly"))vo[1]++; else vo[0]++; } if(app.count("Frank")){ if(!app.count("Bob") && !app.count("Anne"))vo[0]++; else if(app.count("Anne"))vo[2]++; } cout<<"Scenario #"<<sc+1<<':'<<endl; if(vo[0]>vo[1] && vo[0]>vo[2])cout<<"cinema"; else if(vo[1]>vo[0] && vo[1]>vo[2])cout<<"cocktail bar"; else if(vo[2]>vo[0] && vo[2]>vo[1])cout<<"disco"; else cout<<"stay at the Hacienda"; cout<<endl<<endl; } }