0000000
題目:競選時,要求選民在n個候選人中選擇,n個人的名字為 A,B,C,D……連續n個大寫字母,如果選擇n個人名字之外的人員,則為廢票。 統計時以輸入’#’為結束標記。請按候選人的得票數目從大到小順序輸出候選人的名字及得票情況。Time Limit Exceeded#include<iostream>#include<algorithm>using namespace std;int n,c;char na[233];struct ren{ char name; int sum;}ren['a'];void init(){ cin>>n; for(char i='A';i<='A'+n;i++) { ren[i].name=i; } for(int i=1;;i++) { cin>>na[i]; c++; if(na[i]=='#') break; }}void work(){ for(int i=1;i<c;i++) { for(char j='A';j<='A'+n;j++) { if(na[i]==j) { ren[j].sum=ren[j].sum+1; break; } } } for(char i='A';i<'A'+c-1;i++) { for(char j=i+1;j<'A'+c;j++) { if(ren[i].sum<ren[j].sum) swap(ren[i],ren[j]); } }}void print(){ for(int i='A';i<'A'+n;i++) { cout<<ren[i].name<<" "<<ren[i].sum<<endl; }}int main(){ init(); work(); print(); return 0;}正解:#include<iostream>#include<algorithm>using namespace std;int n,c;char na[2333];struct ren{ char name; int sum;}ren['a'];void init(){ cin>>n; for(char i='A';i<'A'+n;i++) { ren[i].name=i; } for(int i=1;;i++) { cin>>na[i]; c++; if(na[i]=='#') break; }}void work(){ for(int i=1;i<c;i++) { if(na[i]>'Z') break; for(char j='A';j<'A'+n;j++) { if(na[i]==j) { ren[j].sum=ren[j].sum+1; break; } } } for(char i='A';i<'A'+n;i++) { for(char j=i+1;j<='A'+n;j++) { if((ren[i].sum<ren[j].sum)||((ren[i].sum==ren[j].sum)&&(ren[i].name>ren[j].name))) swap(ren[i],ren[j]); } }}void print(){ for(int i='A';i<'A'+n;i++) { cout<<ren[i].name<<":"<<ren[i].sum<<endl; }}int main(){ init(); work(); print(); return 0;}
轉載于:https://www.cnblogs.com/zyker/p/5879210.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: windows下配置ssh(FreeSS
- 下一篇: mysql5.7.13.zip安装(wi