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