1 solutions
-
0
C++ :
#include <bits/stdc++.h> using namespace std; /* m个品牌,n个评委 */ string a[1010];//存储n个评委的评分 int n,m; int r[20];//存储投票过程,-1表示被淘汰 int main(){ cin>>m>>n; for(int i = 1;i <= n;i++){ cin>>a[i]; } while(1==1){ //m个品牌每轮都要初始化,把没有被淘汰的得票数清零 for(int i = 1;i <= m;i++){ if(r[i] != -1) r[i] = 0; } for(int i = 1;i <= n;i++){ //算票 string t = a[i]; for(int j = 0;j < t.size();j++){ char c = t[j] - '0';//获取投了谁 if(c == 0) break;//弃权 else{ //没有被淘汰的计票 if(r[c] != -1){ r[c]++; break; } } } } //计算结果:得票最多的和最少的票数 int mi = INT_MAX,ma = INT_MIN; for(int i = 1;i <= m;i++){ if(r[i] != -1){ mi = min(mi,r[i]); ma = max(ma,r[i]); } } if(ma > mi){ //淘汰所有最小值 for(int i = 1;i <= m;i++){ if(r[i] == mi) r[i] = -1; } }else{ //最后是平票,也就是只有2种情况,要么评选失败 //要么只剩1个品牌 int cnt = 0;//有几个品牌是最大值 int res = 0; //哪个品牌是最大值 for(int i = 1;i <= m;i++){ if(r[i] == ma){ cnt++; res = i; } } if(cnt > 1) cout<<0-ma;//评选失败 else cout<<res; break; } } return 0; }
- 1
Information
- ID
- 9990
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By