p2193.pas

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 69 行

PAS
69
字号
PROGRAM p2193;

VAR
        i,j                                     :Integer;
        s                                       :String;
        map                                     :array[1..4,1..4]of Char;

FUNCTION Check(n:Integer):Boolean;
var
        p,q,i,j                                 :Integer;
begin
p:=(n+2) div 3;
q:=n mod 3;
if q=0 then q:=3;
for i:=p to p+1 do
        for j:=q to q+1 do
                if (map[i,j]<>'.')and(map[i,j]<>char(n+48)) then
                begin
                check:=false;
                exit;
                end;
check:=true;
for i:=p to p+1 do
        for j:=q to q+1 do map[i,j]:='.';
end;

FUNCTION Ans:Boolean;
var
        find                                    :Boolean;
        i,j                                     :Integer;
        done                                    :array[1..9]of Boolean;
begin
fillchar(done,sizeof(done),false);
repeat
        find:=false;
        for i:=1 to 9 do
                if not done[i] and (check(i)) then
                        begin
                        done[i]:=true;
                        find:=true;
                        end;
until not find;
Ans:=true;
for i:=1 to 4 do
        for j:=1 to 4 do
                if map[i,j]<>'.' then
                        begin
                        ans:=false;
                        exit;
                        end;
end;


BEGIN
readln(s);
while (s<>'ENDOFINPUT') do
        begin
        for i:=1 to 4 do
                begin
                read(map[i,1]);
                for j:=2 to 4 do read(map[i,j],map[i,j]);
                readln;
                end;
        if Ans then writeln('THESE WINDOWS ARE CLEAN')
                else writeln('THESE WINDOWS ARE BROKEN');
        readln;
        readln(s);
        end;
END.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?