[ACM] 119-GreedyGiftGiver

看板C_and_CPP作者 (笨笨鳥慢慢飛)時間15年前 (2010/07/29 15:57), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
題號:119 遇到的問題:WA 有問題的code: (請善用置底文的標色功能) #include<iostream> #include<string> #include<vector> using namespace std; int main(void) { int n=0; while(cin>>n) { string g_name="\0";//抓名字用 int g_people=0;//抓人數用 int g_money=0;//抓錢數用 vector<string>name;//存名字 vector<int>money;//存錢 for(int i=0;i<n;i++)//第一個for先抓名字並在每個人的戶頭?歸零 { cin>>g_name; name.push_back(g_name); money.push_back(0); } for(int i=0;i<n;i++) { cin>>g_name>>g_money>>g_people; if(g_people!=0) { for(int j=0;j<n;j++) { if(name[j]==g_name)//分錢者 { money[j]-=g_money;//損失的 money[j]+=(g_money%g_people);//分不出去的 } } for(int j=0;j<g_people;j++) { cin>>g_name; for(int k=0;k<n;k++) { if(name[k]==g_name)//收錢的 { money[k]+=(g_money/g_people); } } } } } for(int i=0;i<n;i++) { cout<<name[i]<<" "<<money[i]<<endl; } cout<<endl;//分開group的斷行 } return 0; } 補充說明: 不知道問題到底出在哪裡 測試檔測試結果也沒問題~也可以重複輸入 他說group和group之間要有一行空白我也寫了~ 就不知道為什麼是WA -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.212.79

07/29 18:29, , 1F
你斷行斷錯地方地方了
07/29 18:29, 1F

07/29 18:29, , 2F
第二筆以後的輸出要和前一筆空一行
07/29 18:29, 2F

07/29 18:30, , 3F
也就是說最後一筆輸出的後面並沒有空行
07/29 18:30, 3F

07/29 18:30, , 4F
而你連最後一筆也空了
07/29 18:30, 4F

07/29 18:31, , 5F
ACM的輸出是非常刁鑽的orz
07/29 18:31, 5F

07/29 19:43, , 6F
所以~空行要擺在最前面囉?
07/29 19:43, 6F

07/29 21:42, , 7F
也不對 你得仔細到最前面和最後面都沒有多的空行
07/29 21:42, 7F

07/30 05:35, , 8F
有點想吐血~是要多設一個變數和if來控制就是了= =
07/30 05:35, 8F

07/30 18:51, , 9F
樓上正解
07/30 18:51, 9F
文章代碼(AID): #1CKJHRtO (C_and_CPP)