Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project5;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- const
- MAXIN = 10000;
- var
- n, i, j, k: integer;
- a: array [0..MAXIN, 0..MAXIN] of integer;
- procedure wiwod();
- var
- i, j: integer;
- time: array [0..MAXIN] of integer;
- begin
- for i := 1 to n do
- time[i] := 0;
- for i := 1 to n do
- for j := 1 to n do
- inc(time[a[i][j]]);
- //for i := 1 to n do
- //if (time[i] <> n) then
- //exit;
- for i := 1 to n do
- begin
- for j := 1 to n - 1 do
- write(a[i][j], ' ');
- writeln(a[i][n]);
- end;
- readln;
- readln;
- halt(0);
- end;
- procedure rec(x, y: integer);
- var
- i, j: integer;
- time: array [0..MAXIN] of integer;
- begin
- inc(k);
- if (k = 1001) then
- wiwod;
- for i := 1 to n do
- time[i] := i;
- for i := 1 to n do
- begin
- time[a[x][i]] := 0;
- time[a[i][y]] := 0;
- end;
- //writeln(' ', a[x][y], ' ',x, ' ',y);
- if (a[x][y] = 0) then
- begin
- for i := 1 to n do
- if (time[i] <> 0) then
- begin
- a[x][y] := time[i];
- if (x = n) and (y = n) then
- wiwod()
- else
- if (y = n) then
- rec(x + 1, 1)
- else
- rec(x, y + 1);
- end
- else
- begin
- end;
- end
- else
- if (x = n) and (y = n) then
- wiwod()
- else
- if (y = n) then
- rec(x + 1, 1)
- else
- rec(x, y + 1);
- a[x][y] := 0;
- end;
- begin
- //assign(output,'out.txt');
- //rewrite(output);
- readln(n);
- k := 0;
- for i := 1 to n do
- for j := 1 to n do
- read(a[i][j]);
- rec(1, 1);
- //close(output);
- readln;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment