/*
Soru4D: Bir n (n<10) degeri icin {a| 0<=a<=n} kumesi uzerinde verilen bir 
  bagintinin yansima, simetri ve gecisme ozelliklerini bulan bir program yaziniz.
Ornek:
  Girdi:
    n degerini veriniz: 5
    Bagintiyi veriniz:
       1 1 1 0 0         
       1 1 1 1 0
       1 1 1 0 0
       0 1 0 1 0
       1 0 0 0 1
  Cikti: Yansimali
         Simetrisiz
	 Gecismeli
Aciklama:
  Bu soruda baginti bir matris olarak gosterilmektedir.
	 
Not: 
  B, A uzerinde tanimli bir baginti olsun.
  - A'nin her x elemani icin, (x,x) B'nin elemani ise B yansimalidir.
  - A'nin her x,y elemani icin, (x,y) B'nin elemani iken (y,x) de B'nin 
      elemani ise B simetriktir.
  - A'nin her x,y elemani icin, (x,y) ve (y,x) B'nin elemani iken x=y ise
      B antisimetriktir.
  - A'nin x,y,z elemani icin, (x,y) ve (y,z) B'nin elemani iken (x,z) de 
      B'nin elemani ise B gecismelidir.
  
  * B bagintisi yansimali, simetrik ve gecismeli ise denklik bagintisidir.
  * B bagintisi yansimali, antisimetrik ve gecismeli ise kismi siralama 
      bagintisidir.
*/

#include <stdio.h> 

void main()
{ int A[10][10],n,i,j,k,s;
  printf("n degerini veriniz: ");
  scanf("%d",&n);
  printf("Bagintiyi veriniz: ");
  for (i=0; i<n; i++)  
  for (j=0; j<n; j++)
    scanf("%d",&A[i][j]);
  // Yansima ozelligi arastiriliyor...    
  for (i=0; i<n; i++)
    if (A[i][i]==0) break;
  if (i<n) printf("Yansimasiz\n"); else printf("Yansimali\n");
  s=0; // s burada FLAG olarak kullaniliyor. 
       // Yani aksi bir durum cikarsa s'in degeri 1 olacak.
  for (i=0; i<n; i++)
  for (j=0; j<n; j++)
    if (A[i][j]!=A[j][i]) s=1; // Terslik var, s'i 1 yap
  if (s==0) printf("Simetrik");   // Terslik yok ise 
       else printf("Simetrisiz"); // aksi halde
  s=0;
  for (i=0; i<n; i++)
  for (j=0; j<n; j++)
   if (A[i][j]==1)
      for (k=0; k<n; k++)
        if (A[j][k]==1 && A[i][k]==0) s=1; // Terslik var
  if (s==0) printf("Gecismeli");  // Terslik yok ise 
       else printf("Gecismesiz"); // aksi halde
}