Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
41530 | zhangchunhong | 评选最佳品牌 | C++ | 通过 | 0 MS | 252 KB | 1507 | 2024-02-21 18:46:10 |
#include<bits/stdc++.h> using namespace std; int g[1010][15];//评委态度 int piao[15];//得票桶 bool st[15]; //品牌标记桶 bool success=true; int last_piaoshu; int last_pinpai; int n,m;//n个评委,m个品牌 void pingxuan() { while(1){ memset(piao,0,sizeof(piao));//数组初始化 清零 for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++){ int k=g[i][j]; if(k==0) break;//弃权票 if(st[k]) continue;//品牌淘汰 piao[k]++;//投票入桶 break; } } //寻找最大票数和最小票数 int minn=1001,maxn=-1001; for(int i=1;i<=m;i++){ if(piao[i]<minn&&!st[i]) minn=piao[i]; if(piao[i]>maxn&&!st[i]) maxn=piao[i]; } if(maxn>minn) { for(int i=1;i<=m;i++){ if(piao[i]==minn&&st[i]==false) st[i]=true;//品牌被淘汰 } continue;//进入下一轮评选 } else { int sum=0; for(int i=1;i<=m;i++){ if(piao[i]==minn) sum++,last_pinpai=i; } if(sum==1) return;//最后剩一个品牌,评选结束 else{ last_piaoshu=minn;//保留最后一轮的得票 success=false;//标记失败 return ; } } } } int main() { cin>>m>>n; for(int i=1;i<=n;i++){// 信息的输入,将字符型转换成数字类型 string str; cin>>str; for(int j=0;j<str.size();j++){ g[i][j+1]=str[j]-'0'; } } pingxuan();//调用自定义函数 if(success) cout<<last_pinpai<<endl; else cout<<'-'<<last_piaoshu<<endl; return 0; }