You are on page 1of 4

#include <iostream>

using namespace std;

struct binar

int val, v[5];

};

int d1[4]={0, 1, 0, -1}, d2[4]={-1, 0, 1, 0};

void init(binar p[20])

for(int i=0; i<=15; i++)

p[i].val=i;

int j=0;

for(int s=0; s<4; s++)

p[i].v[s]=0;

while(p[i].val>0)

p[i].v[j]=p[i].val%2;

p[i].val/=2;

j++;

p[i].val=i;

}
for(int i=0; i<4; i++)

p[-1].v[i]=1;

void f(int w[101][101], int i, int j, int &A, int &l, int &c, binar p[20])

int s=i, t=j;

for(int a=0; a<4; a++)

if(p[w[i][j]].v[a]==0 && w[i+d1[a]][j+d2[a]]!=-1)

w[i][j]=-1;

A++;

if(i+d1[a]==s)

if(j+d2[a]>t)

t=j+d2[a];

if(i+d1[a]>s)

s=i+d1[a];

t=j+d2[a];

f(w, i+d1[a], j+d2[a], A, l, c, p);

l=max(s, l);
c=max(c, t);

int main()

int C, n, k=0, A, m=0, i, j, l, c, l1, l2, c1, c2;

binar p[20];

init(p);

cin >> C >> n;

int w[101][101];

/* for(i=0; i<=n+1; i++)

w[i][0]=-1;

w[i][n+1]=-1;

w[0][i]=-1;

w[n+1][i]=-1;

}*/

for(i=1; i<=n; i++)

for(j=1; j<=n; j++)

cin >> w[i][j];

for(i=1; i<=n; i++)

for(j=1; j<=n; j++)

if(w[i][j]==9 || w[i][j]==11 || w[i][j]==13 || w[i][j]==15)

k++;

A=1;

l=0;
c=0;

f(w, i, j, A, l, c, p);

if(A>m)

m=A;

l1=i;

l2=l;

c1=j;

c2=c;

if(C==1)

cout << k;

if(C==2)

cout << m;

if(C==3)

cout << l1 << " " << c1 << " " << l2 << " " << c2;

return 0;

You might also like