ZZU 省赛第六题
View Code
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 int main() 5 { 6 int i, j, ncases, n, k; 7 int a[31][31],flag[4],ok; 8 9 scanf("%d",&ncases); 10 while( ncases-- ) 11 { 12 scanf("%d",&n); 13 memset(flag,0,sizeof(flag)); 14 for(i=0; i<n; i++) 15 for(j=0; j<n; j++) 16 { 17 scanf("%d",&a[i][j]); 18 } 19 ok = 0; 20 for(i=0; i<n; i++) 21 for(j=0; j<n; j++) 22 { 23 if(a[i][i] != 0) 24 flag[1] = 1; 25 else if(a[i][j]<=0 && i!=j) 26 flag[2] = 1; 27 else if(a[i][j] != a[j][i]) 28 flag[3] = 1; 29 } 30 for(i=0; i<n; i++) 31 for(j=i+1; j<n; j++) 32 { 33 for(k=i+1; k<j; k++) 34 { 35 if(a[i][j]+a[j][k]<a[i][k] && i!=j&&j!=k&&i!=k) 36 flag[4] = 1; 37 } 38 } 39 for(i=1; i<=4; i++) 40 { 41 if(flag[i]==1) 42 { 43 printf("%d\n",i); 44 ok = 1; break; 45 } 46 } 47 if( !ok ) printf("0\n"); 48 } 49 return 0; 50 }