讨论 / 有什么错;;;;;;;;;;;;;;;;;;;;;;;;;;
win0000 2010-09-14 04:53:00
点我顶贴 收藏 删除
有什么错;;;;;;;;;;;;;;;;;;;;;;;;;;

题目:入门

状态: Unaccepted

测评机: Xeond[6]

得分: 10分

提交日期: 2010-6-12 18:07:00

有效耗时: 47毫秒

测试结果1: 测试结果错误.错误结果为:64

正确结果应为:23

测试结果2: 测试结果错误.错误结果为:125

正确结果应为:185

测试结果3: 测试结果错误.错误结果为:30

正确结果应为:16

测试结果4: 通过本测试点|有效耗时47ms

测试结果5: 测试结果错误.错误结果为:18

正确结果应为:31

测试结果6: 测试结果错误.错误结果为:14

正确结果应为:52

测试结果7: 测试结果错误.错误结果为:39

正确结果应为:133

测试结果8: 测试结果错误.错误结果为:83

正确结果应为:130

测试结果9: 测试结果错误.错误结果为:24

正确结果应为:13

测试结果10: 测试结果错误.错误结果为:98

正确结果应为:73

program xxx;

var b,c:array [0..21,0..21]of boolean;

a:array[1..20] of string[20];

i,j,x,y,n,m:integer;

procedure find(m,n:integer);

begin

if c[m,n] then exit;

c[m,n]:=true;

if (a[m][n]in['.','@']) then begin b[m,n]:=true;end;

if m>1 then find(m-1,n);

if m<x then find(m+1,n);

if n>1 then find(m,n-1);

if n<x then find(m,n+1);

end;

begin

readln(x,y);

fillchar(b,sizeof(b),false);

for i:=1 to x do

begin readln(a[i]);n:=pos('@',a[i]);

if n>0 then begin b[i,n]:=true;m:=i;end;

end;

find(m,n);

n:=0;

for i:=1 to x do

for j:=1 to y do

if b[i,j] then inc(n);

writeln(n);

end.

#1 kprf@2010-09-14 04:53:00
回复 删除
很明显,想法错了
查看更多回复
提交回复