CF1178A 题解
题意简述
有 \(n\) 个政党参加了选举,每个政党获得了 \(a_{i}\) 张选票,Alice 的政党是一号政党,她需要与其他政党组成一个联盟,满足以下条件:
-
联盟中的总票数必须严格大于总票数。
-
她的政党获得的票数必须大于联盟中任意一个政党获得的票数。
题目分析
一道挺简单的题,模拟题意即可。需要注意是严格大于总票数。
Code
#include<bits/stdc++.h>
using namespace std;
int n,a[105],s;
vector<int> ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
s+=a[i];
}
if(a[1]>s/2){//特判
printf("1\n1");
return 0;
}
int t=a[1];
ans.push_back(1);
for(int i=2;i<=n;i++){
if(a[1]>=a[i]*2){
ans.push_back(i);//加入联盟并统计得票
t+=a[i];
}
}
if(t>s/2){
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++) cout<<ans[i]<<" ";
return 0;
}
else{
cout<<0;
return 0;
}
return 0;
}