题目描述
有 n (n < 100) 只羊驼,他们两两之间有的相互仰慕,有的单方面仰慕,有的则不存在仰慕关系。设有两只羊驼 A 和 B,A 是 B 的粉丝,当且仅当羊驼 A 仰慕羊驼 B 但是羊驼 B 不仰慕羊驼 A。
现在给出每一只羊驼仰慕的其他羊驼,求出每一只羊驼的粉丝数。
输入描述
第一行一个数 n,接下来为一个 n × n 的 0 1 矩阵,第 i 行第 j 列为 1 代表第 i 只羊驼仰慕第 j 只羊驼,i = j 的时候矩阵上的值总为 0(一只羊驼不会仰慕自己)。
输出描述
n 行,每行一个数,代表第 i 只羊驼的粉丝数。
样例输入
3
0 1 1
1 0 0
0 1 0
样例输出
0
1
1
样例解释:
第一只羊驼仰慕第二、三只羊驼;
第二只羊驼仰慕第一只羊驼;
第三只羊驼仰慕第二只羊驼;
第一只羊驼仰慕所有其他羊驼,所以粉丝数为 0;
第二只羊驼不仰慕第三只但是第三只却仰慕第二只,并且第二只与第一只互相仰慕,所以粉丝数为 1;
第三只羊驼被第一只羊驼仰慕却不仰慕第一只,所以粉丝数为 1.
代码如下
#include <string.h>
#include <vector>
#include <iostream>
using namespace std;
/*
3
0 1 1
1 0 0
0 1 0
*/
int main()
{
int n;
while (cin >> n)
{
vector<vector<int> > alpaca(n, vector<int>(n, 0));
vector<int> FanNum(n, 0);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> alpaca[i][j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (alpaca[j][i] == 1 && alpaca[i][j] == 0)
{
FanNum[i]++;
}
}
}
for (int i = 0; i < n; i++)
{
cout << FanNum[i] << endl;
}
}
return 0;
}