一开始想用并查集,如果双方都认为对方是好的就放在一块,最后把最大的块输出
但看了别人的题解发现思维题一道,因为好芯片多,所以只要认为这个芯片好的坏的多,那么这个就是好芯片
#include<bits/stdc++.h>
using namespace std;
const int N=30;
int n,a[N][N],good,bed,istrue[N];
int main(){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
for(int i=0;i<n;i++){
good=0; bed=0;
for(int j=0;j<n;j++){
if(a[j][i]==1) good++;
else bed++;
}
if(good>bed) istrue[i]=1;
}
for(int i=0;i<n;i++) if(istrue[i]) cout<<i+1<<" ";
return 0;
} 
京公网安备 11010502036488号