一开始想用并查集,如果双方都认为对方是好的就放在一块,最后把最大的块输出
但看了别人的题解发现思维题一道,因为好芯片多,所以只要认为这个芯片好的坏的多,那么这个就是好芯片
#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;
}