program ideone;
type TData=array[0..8,0..8] of Integer;
type TArr=array[0..8,0..8] of Boolean;
const data:TData=
(
(10,11,12,13,14,15,16,17,18),
(19,20,21,22,23,24,25,26,27),
(28,29,30,31,32,33,34,35,36),
(37,38,39,40,41,42,43,44,45),
(46,47,48,49,50,51,52,53,54),
(55,56,57,58,59,60,61,62,63),
(64,65,66,67,68,69,70,71,72),
(73,74,75,76,77,78,79,80,81),
(82,83,84,85,86,87,88,89,90)
);
procedure randShow(var arr:TArr;ToShow:Integer);
var I,P:Integer;
var swap:Boolean;
begin
for I:=0 to ToShow-1 do arr[0,I]:=true;
for I:=ToShow to 9*9-1 do arr[0,I]:=false;
for I:=1 to 9*9-1 do
begin
P:=Random(I+1);
swap:=arr[0,P];
arr[0,P]:=arr[0,I];
arr[0,I]:=swap;
end;
end;
procedure show(const data:TData;const arr:TArr);
var Y,X:Integer;
begin
for Y:=0 to 9-1 do
begin
for X:=0 to 9-1 do
begin
if arr[Y,X] then Write(' ',data[Y,X]) else Write(' --');
end;
WriteLn;
end;
WriteLn;
end;
var arr:TArr;
begin
Randomize;
randShow(arr,10);
show(data,arr);
randShow(arr,20);
show(data,arr);
randShow(arr,30);
show(data,arr);
randShow(arr,40);
show(data,arr);
end.
cHJvZ3JhbSBpZGVvbmU7Cgp0eXBlIFREYXRhPWFycmF5WzAuLjgsMC4uOF0gb2YgSW50ZWdlcjsKdHlwZSBUQXJyPWFycmF5WzAuLjgsMC4uOF0gb2YgQm9vbGVhbjsKCmNvbnN0IGRhdGE6VERhdGE9CigKICAoMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgpLAogICgxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNyksCiAgKDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2KSwKICAoMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUpLAogICg0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCksCiAgKDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzKSwKICAoNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIpLAogICg3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSksCiAgKDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwKQopOwoKcHJvY2VkdXJlIHJhbmRTaG93KHZhciBhcnI6VEFycjtUb1Nob3c6SW50ZWdlcik7CnZhciBJLFA6SW50ZWdlcjsKdmFyIHN3YXA6Qm9vbGVhbjsKYmVnaW4KICBmb3IgSTo9MCB0byBUb1Nob3ctMSBkbyBhcnJbMCxJXTo9dHJ1ZTsKICBmb3IgSTo9VG9TaG93IHRvIDkqOS0xIGRvIGFyclswLEldOj1mYWxzZTsKICBmb3IgSTo9MSB0byA5KjktMSBkbwogIGJlZ2luCiAgCVA6PVJhbmRvbShJKzEpOwogIAlzd2FwOj1hcnJbMCxQXTsKICAJYXJyWzAsUF06PWFyclswLEldOwogIAlhcnJbMCxJXTo9c3dhcDsKICBlbmQ7CmVuZDsKCnByb2NlZHVyZSBzaG93KGNvbnN0IGRhdGE6VERhdGE7Y29uc3QgYXJyOlRBcnIpOwp2YXIgWSxYOkludGVnZXI7CmJlZ2luCiAgZm9yIFk6PTAgdG8gOS0xIGRvCiAgYmVnaW4KICAgIGZvciBYOj0wIHRvIDktMSBkbwogICAgYmVnaW4KICAgICAgaWYgYXJyW1ksWF0gdGhlbiBXcml0ZSgnICcsZGF0YVtZLFhdKSBlbHNlIFdyaXRlKCcgLS0nKTsKICAgIGVuZDsKICAgIFdyaXRlTG47CiAgZW5kOwogIFdyaXRlTG47CmVuZDsKCnZhciBhcnI6VEFycjsKYmVnaW4KICBSYW5kb21pemU7CiAgcmFuZFNob3coYXJyLDEwKTsKICBzaG93KGRhdGEsYXJyKTsKICByYW5kU2hvdyhhcnIsMjApOwogIHNob3coZGF0YSxhcnIpOwogIHJhbmRTaG93KGFyciwzMCk7CiAgc2hvdyhkYXRhLGFycik7CiAgcmFuZFNob3coYXJyLDQwKTsKICBzaG93KGRhdGEsYXJyKTsKZW5kLg==