[ブルーブリッジカップ][基礎練習VIP]チップテスト

4896 ワード

タイトルの説明


n(2≦n≦20)ブロックチップがあり、良いものと悪いものがあり、良いチップは悪いチップより多いことが知られている.
各チップは他のチップをテストするために使用できます.他のチップをチップでテストすると、テストされたチップが良いか悪いかを正確に与えることができます.一方、悪いチップで他のチップをテストすると、良いか悪いかのテスト結果がランダムに与えられます(すなわち、この結果は被テストチップの実際の良し悪しとは関係ありません).
すべてのチップのテスト結果を示し、どのチップが良いチップなのかを尋ねます.入力データの第1の動作は、チップ個数を表す整数nである.
2行目からn+1行目n*nのテーブルで、1行n個のデータが表示されます.表中の各データは0または1であり、このn行のi行目j列目(1≦i,j≦n)のデータは、iブロック目チップでjブロック目チップをテストしたときに得られたテスト結果を示し、1は良い、0は悪い、i=jの場合は一律に1(このチップが自分に対するテスト結果を示さない.コアシートは自分に対してテストできない)である.出力は小さい順にすべての良いチップの番号サンプル入力を出力する
3
1 0 1
0 1 0
1 0 1
サンプル出力
1 3
#include<iostream> 
using namespace std;
int map[25][25];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++) cin>>map[i][j];
	}
	for(int j=1;j<=n;j++)
	{
		int num=0;
		for(int i=1;i<=n;i++)
		{
			if(map[i][j]==1) num++;
		}
		if(2*num>n) cout<<j<<" "; 
	}
	return 0;
}

構想


第j列は、第jチップが他のチップを検出する場合であり、その列を巡り、チップの数をよくし、要求に合致するか否かを判断する.
私はプログラム媛で、コードで世界を変えるエンジニアです.