比赛 |
20140714下午练习 |
评测结果 |
AAAAAAAA |
题目名称 |
城堡 |
最终得分 |
100 |
用户昵称 |
miike is god |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2014-07-14 15:43:23 |
显示代码纯文本
var
d,c,e,n,m,ans,x1,y1:longint;
ch:char;
a,b:array[0..101,0..101]of integer;
k:array[0..10001]of integer;
procedure sousuo(x,y:longint);
var
i,j:longint;
begin
if (a[x,y] mod 2<1)and(b[x,y-1]=0) then
begin
b[x,y-1]:=c;
inc(k[c]);
sousuo(x,y-1);
end;
if (a[x,y] mod 4<2)and(b[x-1,y]=0) then
begin
b[x-1,y]:=c;
inc(k[c]);
sousuo(x-1,y);
end;
if (a[x,y] mod 8<4)and(b[x,y+1]=0) then
begin
b[x,y+1]:=c;
inc(k[c]);
sousuo(x,y+1);
end;
if (a[x,y]<8)and(b[x+1,y]=0) then
begin
b[x+1,y]:=c;
inc(k[c]);
sousuo(x+1,y);
end;
end;
begin
assign(input,'castle.in');
assign(output,'castle.out');
reset(input);
rewrite(output);
for d:=0 to 101 do
for e:=0 to 101 do
a[d,e]:=15;
read(n,m);
for d:=1 to m do
for e:=1 to n do
read(a[d,e]);
c:=0;
for d:=1 to m do
for e:=1 to n do
if b[d,e]=0 then
begin
inc(c);
inc(k[c]);
b[d,e]:=c;
sousuo(d,e);
end;
writeln(c);
ans:=0;
for c:=1 to c do
if k[c]>ans then ans:=k[c];
writeln(ans);
for e:=1 to n do
for d:=m downto 1 do
begin
if (b[d,e]<>b[d,e-1])and(k[b[d,e]]+k[b[d,e-1]]>ans) then
begin
x1:=d;y1:=e;ch:='W';
ans:=k[b[d,e]]+k[b[d,e-1]];
break;
break;
end;
if (b[d,e]<>b[d-1,e])and(k[b[d,e]]+k[b[d-1,e]]>ans) then
begin
x1:=d;y1:=e;ch:='N';
ans:=k[b[d,e]]+k[b[d-1,e]];
break;
break;
end;
if (b[d,e]<>b[d,e+1])and(k[b[d,e]]+k[b[d,e+1]]>ans) then
begin
x1:=d;y1:=e;ch:='E';
ans:=k[b[d,e]]+k[b[d,e+1]];
break;
break;
end;
if (b[d,e]<>b[d-1,e])and(k[b[d,e]]+k[b[d-1,e]]>ans) then
begin
x1:=d;y1:=e;ch:='N';
ans:=k[b[d,e]]+k[b[d-1,e]];
break;
break;
end;
end;
writeln(ans);
writeln(x1,' ',y1,' ',ch);
close(input);close(output);
end.
var
d,c,e,n,m,ans,x1,y1:longint;
ch:char;
a,b:array[0..101,0..101]of integer;
k:array[0..10001]of integer;
procedure sousuo(x,y:longint);
var
i,j:longint;
begin
if (a[x,y] mod 2<1)and(b[x,y-1]=0) then
begin
b[x,y-1]:=c;
inc(k[c]);
sousuo(x,y-1);
end;
if (a[x,y] mod 4<2)and(b[x-1,y]=0) then
begin
b[x-1,y]:=c;
inc(k[c]);
sousuo(x-1,y);
end;
if (a[x,y] mod 8<4)and(b[x,y+1]=0) then
begin
b[x,y+1]:=c;
inc(k[c]);
sousuo(x,y+1);
end;
if (a[x,y]<8)and(b[x+1,y]=0) then
begin
b[x+1,y]:=c;
inc(k[c]);
sousuo(x+1,y);
end;
end;
begin
assign(input,'castle.in');
assign(output,'castle.out');
reset(input);
rewrite(output);
for d:=0 to 101 do
for e:=0 to 101 do
a[d,e]:=15;
read(n,m);
for d:=1 to m do
for e:=1 to n do
read(a[d,e]);
c:=0;
for d:=1 to m do
for e:=1 to n do
if b[d,e]=0 then
begin
inc(c);
inc(k[c]);
b[d,e]:=c;
sousuo(d,e);
end;
writeln(c);
ans:=0;
for c:=1 to c do
if k[c]>ans then ans:=k[c];
writeln(ans);
for e:=1 to n do
for d:=m downto 1 do
begin
if (b[d,e]<>b[d,e-1])and(k[b[d,e]]+k[b[d,e-1]]>ans) then
begin
x1:=d;y1:=e;ch:='W';
ans:=k[b[d,e]]+k[b[d,e-1]];
break;
break;
end;
if (b[d,e]<>b[d-1,e])and(k[b[d,e]]+k[b[d-1,e]]>ans) then
begin
x1:=d;y1:=e;ch:='N';
ans:=k[b[d,e]]+k[b[d-1,e]];
break;
break;
end;
if (b[d,e]<>b[d,e+1])and(k[b[d,e]]+k[b[d,e+1]]>ans) then
begin
x1:=d;y1:=e;ch:='E';
ans:=k[b[d,e]]+k[b[d,e+1]];
break;
break;
end;
if (b[d,e]<>b[d-1,e])and(k[b[d,e]]+k[b[d-1,e]]>ans) then
begin
x1:=d;y1:=e;ch:='N';
ans:=k[b[d,e]]+k[b[d-1,e]];
break;
break;
end;
end;
writeln(ans);
writeln(x1,' ',y1,' ',ch);
close(input);close(output);
end.