d625.
踩地雷真好玩
--
jack1
| From: [60.246.83.78] |
發表日期
:
2015-03-06 18:59
我的做法是先找到存下'*'的位置,然後改變陣列中的數字..@@
const di:array[1..8] of integer=(-1,-1,-1,0,0,1,1,1);
dj:array[1..8] of integer=(-1,0,1,-1,1,-1,0,1);
var map:array[1..100] of string;
l,po,n,i,j,c:integer;
s:string;
p,q:array[1..10000] of integer;
procedure change(var c:char);
begin
if c='-' then c:='1'
else c:=succ(c);
end;
procedure search(i,j,m:integer);
begin
if (j+dj[m]<=n) and (i+di[m]>=1) and (j+dj[m]>=1) and (i+di[m]<=n) then
if map[i+di[m]][j+dj[m]]<>'*' then change(map[i+di[m]][j+dj[m]]);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(s);
map[i]:=s;
l:=0;
po:=pos('*',s);
while po>0 do
begin
delete(s,po,1);
inc(c);
p[c]:=i;
q[c]:=l+po;
inc(l);
po:=pos('*',s);
end;
end;
for i:=1 to c do
for j:=1 to 9 do
search(p[i],q[i],j);
for i:=1 to n do
writeln(map[i]);
end.
ZJ上測試執行時
第 1 測資點(0%): WA (line:1) 答案不正確您的答案為: 121--1* 正確答案為: 111--1*
不知道為甚麼會這樣...我在自己電腦上一樣的輸入時程式輸出明明是111-1*
可以請大大們幫我看一下嗎?謝謝