解題思路:
如果芯片i
是好的,那麼它會被其他好芯片(有至少half
個)測出來爲好的,所以只要統計每個芯片的被測出是好的次數(包括自己測自己的那次,雖然題目說不是自己測自己,但是誰讓你 ==1
呢,要是說等於==0
,後面 改成>= half
就是好的),如果 > half
就是好的;反之就是壞的,因爲有至少half+1
可以測出它是壞的,所以它被測出是好的次數不會大於half
代碼:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[30][30] ={0};
int dp[30] = {0};
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
cin>>a[i][j];
dp[j] += a[i][j];
}
}
int half = n/2;
for(int i = 1; i <= n; i++)
{
if(dp[i] > half)
{
cout<<i<<" ";
}
}
return 0;
}