Advertisement
Guest User

Untitled

a guest
Feb 11th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.20 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream f ("joc7.in");
  5. ofstream g ("joc7.out");
  6. int n,k,x,j,i,c,t,ok,dora,stafan;
  7. int a[110][110];
  8. int verif_lin(int a[110][110], int n)
  9. {
  10.     int i=1,ok=0,j=1;
  11.     while(i<=n)
  12.     {
  13.         ok=1;
  14.         for(j=1; j<=n && ok==1; j++)
  15.             if(a[i][j]!=1)ok=0;
  16.         if(ok==1)
  17.             return 2;
  18.         else
  19.         {
  20.             ok=1;
  21.             for(j=1; j<=n && ok==1; j++)
  22.                 if(a[i][j]!=2)ok=0;
  23.             if(ok==1)
  24.                 return 1;
  25.         }
  26.         i++;
  27.     }
  28.     return 0;
  29. }
  30. int verif_col(int a[110][110], int n)
  31. {
  32.     int i=1,ok=0,j=1;
  33.     while(i<=n)
  34.     {
  35.         ok=1;
  36.         for(j=1; j<=n && ok==1; j++)
  37.             if(a[j][i]!=1)ok=0;
  38.         if(ok==1)
  39.             return 2;
  40.         else
  41.         {
  42.             ok=1;
  43.             for(j=1; j<=n && ok==1; j++)
  44.                 if(a[j][i]!=2)ok=0;
  45.             if(ok==1)
  46.                 return 1;
  47.         }
  48.         i++;
  49.     }
  50.     return 0;
  51. }
  52. int verif_col_principala(int a[][110], int n)
  53. {
  54.     int i=1,j=1,ok=1;
  55.     for(i=1; i<=n && ok==1; i++)
  56.         for(j=1; j<=n && ok==1; j++)
  57.             if(i==j && a[i][j]!=1)ok=0;
  58.     if(ok==1)return 1;
  59.     else
  60.     {
  61.         ok=1;
  62.         for(i=1; i<=n && ok==1; i++)
  63.             for(j=1; j<=n && ok==1; j++)
  64.                 if(i==j && a[i][j]!=2)ok=0;
  65.         if(ok==1)return 2;
  66.     }
  67.     ok=1;
  68.     for(i=1; i<=n && ok==1; ++i)
  69.         for(j=1; j<=n && ok==1; j++)
  70.             if(j+1==i && a[i][j]!=1)ok=0;
  71.     if(ok==1)
  72.         return 1;
  73.     else
  74.     {
  75.  
  76.         ok=1;
  77.         for(i=1; i<=n && ok==1; ++i)
  78.             for(j=1; j<=n && ok==1; j++)
  79.                 if(j+1==i && a[i][j]!=2)ok=0;
  80.         if(ok==1)return 1;
  81.     }
  82.  
  83.     ok=1;
  84.     for(i=1; i<=n && ok==1; ++i)
  85.         for(j=1; j<=n && ok==1; j++)
  86.             if(i+1==j && a[i][j]!=1)ok=0;
  87.     if(ok==1)
  88.         return 1;
  89.     else
  90.     {
  91.  
  92.         ok=1;
  93.         for(i=1; i<=n && ok==1; ++i)
  94.             for(j=1; j<=n && ok==1; j++)
  95.                 if(i+1==j && a[i][j]!=2)ok=0;
  96.         if(ok==1)return 1;
  97.     }
  98.     return 0;
  99. }
  100. int verif_col_sec(int a[][110], int n)
  101. {
  102.     int i=1,j=1,ok=1;
  103.     for(i=1; i<=n && ok==1; i++)
  104.         for(j=1; j<=n && ok==1; j++)
  105.             if(i+j==n+1 && a[i][j]!=1)ok=0;
  106.     if(ok==1)return 1;
  107.     else
  108.     {
  109.         ok=1;
  110.         for(i=1; i<=n && ok==1; i++)
  111.             for(j=1; j<=n && ok==1; j++)
  112.                 if(i+j==n+1 && a[i][j]!=2)ok=0;
  113.         if(ok==1)return 2;
  114.     }
  115.  
  116.  
  117.  
  118.     ok=1;
  119.     for(i=1; i<=n && ok==1; ++i)
  120.         for(j=1; j<=n && ok==1; j++)
  121.             if(j+i==n && a[i][j]!=1)ok=0;
  122.     if(ok==1)
  123.         return 1;
  124.     else
  125.     {
  126.  
  127.         ok=1;
  128.         for(i=1; i<=n && ok==1; ++i)
  129.             for(j=1; j<=n && ok==1; j++)
  130.                 if(j+i==n && a[i][j]!=2)ok=0;
  131.         if(ok==1)return 1;
  132.     }
  133.  
  134.     ok=1;
  135.     for(i=1; i<=n && ok==1; ++i)
  136.         for(j=1; j<=n && ok==1; j++)
  137.             if(i+j==n+2 && a[i][j]!=1)ok=0;
  138.     if(ok==1)
  139.         return 1;
  140.     else
  141.     {
  142.  
  143.         ok=1;
  144.         for(i=1; i<=n && ok==1; ++i)
  145.             for(j=1; j<=n && ok==1; j++)
  146.                 if(i+j==n+2 && a[i][j]!=2)ok=0;
  147.         if(ok==1)return 1;
  148.     }
  149.     return 0;
  150. }
  151. int main()
  152. {
  153.     f>>c>>n>>k;
  154.     for(j=1; j<=k; j++)
  155.     {
  156.         for(i=1; i<=n*n; ++i)
  157.         {
  158.             f>>x;
  159.             if(i%2==1)
  160.             {
  161.                 if(x<=n)a[1][x]=1;
  162.                 else if(x%n==0)a[x/n][n]=1;
  163.                 else
  164.                     a[x/n+1][x%n]=1;
  165.             }
  166.             else
  167.             {
  168.                 if(x<=n)a[1][x]=2;
  169.                 else if(x%n==0)a[x/n][n]=2;
  170.                 else a[x/n+1][x%n]=2;
  171.             }
  172.  
  173.         }
  174.        // for(i=1; i<=n; ++i)
  175.          //   for(t=1; t<=n; ++t )g<<a[i][t]<<" \n"[t==n];
  176.        // g<<verif_lin(a,n)<<' '<<verif_col(a,n)<<' '<<verif_col_principala(a,n)<<' '<<verif_col_sec(a,n)<<'\n';
  177.         if(verif_lin(a,n)==1 || verif_col(a,n)==1 || verif_col_principala(a,n)==1 || verif_col_sec(a,n)==1)dora++;
  178.         if(verif_lin(a,n)==2 || verif_col(a,n)==2 || verif_col_principala(a,n)==2 || verif_col_sec(a,n)==2)stafan++;
  179.     }
  180.     g<<dora<<' '<<stafan;
  181.     return 0;
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement