Pagini recente » Cod sursa (job #2532552) | Cod sursa (job #312567) | Cod sursa (job #3288149) | Cod sursa (job #1102154) | Cod sursa (job #2338663)
#include <bits/stdc++.h>
using namespace std;
ifstream in("castel.in");
ofstream out("castel.out");
int p,n,cnt,a[101][101],b[101][101],maxim=0,maxi,xf,yf,x,y,I,J,xi,yi;
void fa_fill(int i,int j){
if(b[i][j]==0){
b[i][j]=1;
maxim++;
if(i>=x && i>=1 && j<=n && j>=1 && j<=n){
x=i;
y=max(j,y);
}
if(!(a[i][j] & 1) && j-1>=1)fa_fill(i,j-1);
if(!(a[i][j] & 2) && i+1<=n)fa_fill(i+1,j);
if(!(a[i][j] & 4) && j+1<=n)fa_fill(i,j+1);
if(!(a[i][j] & 8) && i-1>=1)fa_fill(i-1,j);
}
}
int main()
{
in>>p>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
in>>a[i][j];
if(p==1){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]==11 || a[i][j]==13 || a[i][j]==15 || a[i][j]==9) cnt++;
out<<cnt;
}
else {
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(a[i][j]==11 || a[i][j]==13 || a[i][j]==15 || a[i][j]==9){
I=i;
J=j;
fa_fill(i,j);
if(maxim>maxi){
xi=i;
yi=j;
xf=x;
yf=y;
maxi=maxim;
}
maxim=0;}
}
if(p==2)
out<<maxi;
else
out<<xi<<" "<<yi<<" "<<xf<<" "<<yf;
}
return 0;
}