握手(bestcode#42)

时间:2023-03-09 20:14:33
握手(bestcode#42)

Shaking hands

问题描述
今天是Gorwin的生日,所以她举办了一个派对并邀请她的朋友来参加。她将邀请n个朋友,为了方便,Gorwin把他们从1到n标号。他们之中有一些人已经相互认识,有一些人不认识对方。相互认识的朋友见面之后会握手然后喝一杯香槟。Gorwin想要知道要准备多少杯香槟。你能帮助她吗?
输入描述
多组测试数据(大概30组),每组数据的第一行有一个整数n表示Gorwin要邀请n个朋友来参加她的派对。
接下来n行会给出一个n*n的矩阵,如果a[i][j]是1,那么朋友i和朋友j是相互认识的,否则他们不认识。
请处理到文件末尾。
[参数约定]
所有输入均为整数。
1<=n<=30
0<=a[i][j]<=1
a[i][i]=0;
a[i][j]=a[j][i] for i!=j
输出描述
对于每一个数据,在一行中输出一个整数代表Gorwin总共要准备多少香槟。
输入样例
2
0 0
0 0
3
0 0 1
0 0 0
1 0 0
输出样例
4
8
Hint
对于第二个数据,Gorwin会和她所有的朋友握手,然后喝三杯香槟,她的三个朋友也各喝一杯。朋友1和朋友3相互认识,他们握手,然后各自喝一杯。这样总共要3+3+2=8杯香槟。
 #include<stdio.h>
int main()
{
int T,n,i,j;
int a[][];
while(~scanf("%d",&n))
{
int count=;
for(i=;i<n;i++)
for(j=;j<n;j++)
scanf("%d",&a[i][j]);
for(i=;i<n;i++)
for(j=;j<i;j++)
if(a[i][j]==)
count++;
printf("%d\n",(count+n)*); }
}