Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f ("joc7.in");
- ofstream g ("joc7.out");
- int n,k,x,j,i,c,t,ok,dora,stafan;
- int a[110][110];
- int verif_lin(int a[110][110], int n)
- {
- int i=1,ok=0,j=1;
- while(i<=n)
- {
- ok=1;
- for(j=1; j<=n && ok==1; j++)
- if(a[i][j]!=1)ok=0;
- if(ok==1)
- return 2;
- else
- {
- ok=1;
- for(j=1; j<=n && ok==1; j++)
- if(a[i][j]!=2)ok=0;
- if(ok==1)
- return 1;
- }
- i++;
- }
- return 0;
- }
- int verif_col(int a[110][110], int n)
- {
- int i=1,ok=0,j=1;
- while(i<=n)
- {
- ok=1;
- for(j=1; j<=n && ok==1; j++)
- if(a[j][i]!=1)ok=0;
- if(ok==1)
- return 2;
- else
- {
- ok=1;
- for(j=1; j<=n && ok==1; j++)
- if(a[j][i]!=2)ok=0;
- if(ok==1)
- return 1;
- }
- i++;
- }
- return 0;
- }
- int verif_col_principala(int a[][110], int n)
- {
- int i=1,j=1,ok=1;
- for(i=1; i<=n && ok==1; i++)
- for(j=1; j<=n && ok==1; j++)
- if(i==j && a[i][j]!=1)ok=0;
- if(ok==1)return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; i++)
- for(j=1; j<=n && ok==1; j++)
- if(i==j && a[i][j]!=2)ok=0;
- if(ok==1)return 2;
- }
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(j+1==i && a[i][j]!=1)ok=0;
- if(ok==1)
- return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(j+1==i && a[i][j]!=2)ok=0;
- if(ok==1)return 1;
- }
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(i+1==j && a[i][j]!=1)ok=0;
- if(ok==1)
- return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(i+1==j && a[i][j]!=2)ok=0;
- if(ok==1)return 1;
- }
- return 0;
- }
- int verif_col_sec(int a[][110], int n)
- {
- int i=1,j=1,ok=1;
- for(i=1; i<=n && ok==1; i++)
- for(j=1; j<=n && ok==1; j++)
- if(i+j==n+1 && a[i][j]!=1)ok=0;
- if(ok==1)return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; i++)
- for(j=1; j<=n && ok==1; j++)
- if(i+j==n+1 && a[i][j]!=2)ok=0;
- if(ok==1)return 2;
- }
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(j+i==n && a[i][j]!=1)ok=0;
- if(ok==1)
- return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(j+i==n && a[i][j]!=2)ok=0;
- if(ok==1)return 1;
- }
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(i+j==n+2 && a[i][j]!=1)ok=0;
- if(ok==1)
- return 1;
- else
- {
- ok=1;
- for(i=1; i<=n && ok==1; ++i)
- for(j=1; j<=n && ok==1; j++)
- if(i+j==n+2 && a[i][j]!=2)ok=0;
- if(ok==1)return 1;
- }
- return 0;
- }
- int main()
- {
- f>>c>>n>>k;
- for(j=1; j<=k; j++)
- {
- for(i=1; i<=n*n; ++i)
- {
- f>>x;
- if(i%2==1)
- {
- if(x<=n)a[1][x]=1;
- else if(x%n==0)a[x/n][n]=1;
- else
- a[x/n+1][x%n]=1;
- }
- else
- {
- if(x<=n)a[1][x]=2;
- else if(x%n==0)a[x/n][n]=2;
- else a[x/n+1][x%n]=2;
- }
- }
- // for(i=1; i<=n; ++i)
- // for(t=1; t<=n; ++t )g<<a[i][t]<<" \n"[t==n];
- // g<<verif_lin(a,n)<<' '<<verif_col(a,n)<<' '<<verif_col_principala(a,n)<<' '<<verif_col_sec(a,n)<<'\n';
- if(verif_lin(a,n)==1 || verif_col(a,n)==1 || verif_col_principala(a,n)==1 || verif_col_sec(a,n)==1)dora++;
- if(verif_lin(a,n)==2 || verif_col(a,n)==2 || verif_col_principala(a,n)==2 || verif_col_sec(a,n)==2)stafan++;
- }
- g<<dora<<' '<<stafan;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement