Pagini recente » Cod sursa (job #1378819) | Cod sursa (job #89065)
Cod sursa(job #89065)
{ 100 !!p}
program dame2;
var x,p: array[1..1010] of integer;
n,i: integer;
f: text;
procedure citire;
begin
assign(f,'dame.in');
reset(f);
readln(f,n);
close(f);
end;
procedure sol;
var k,i,j: integer;
begin
k:=n mod 12;
if (k=3) or (k=9) then
begin
for i:=2 to n div 2 do x[i-1]:=2*i;
x[i]:=2;
end
else
for i:=1 to n div 2 do
x[i]:=2*i;
if k=8 then
begin
j:=1;
while (2*j+1)<n do
begin
inc(i);
x[i]:=2*j+1;
inc(i);
x[i]:=2*j-1;
j:=j+2;
end;
end
else
if k=2 then
begin
inc(i);
x[i]:=3;
inc(i);
x[i]:=1;
j:=3;
while (2*j+1<n) do
begin
inc(i);
x[i]:=2*j+1;
j:=j+1;
end;
inc(i);
x[i]:=5;
end
else
if (k=3) or (k=9) then
begin
j:=2;
while (2*j+1<=n) do
begin
inc(i);
x[i]:=2*j+1;
inc(j);
end;
inc(i);
x[i]:=1;
inc(i);
x[i]:=3;
end
else
begin
j:=1;
while (2*j-1)<=n do
begin
inc(i);
x[i]:=2*j-1;
inc(j);
end;
end;
end;
begin
citire;
assign(f,'dame.out');
rewrite(f);
case n of
1,2: begin
writeln(f,1);
writeln(f,'1 1');
end;
3: begin
writeln(f,2);
writeln(f,'1 1');
writeln(f,'2 3');
end;
4: begin
writeln(f,4);
writeln(f,'1 2');
writeln(f,'2 4');
writeln(f,'3 1');
writeln(f,'4 3');
end;
5: begin
writeln(f,5);
writeln(f,'1 1');
writeln(f,'2 3');
writeln(f,'3 5');
writeln(f,'4 2');
writeln(f,'5 4');
end;
6: begin
writeln(f,6);
writeln(f,'1 2');
writeln(f,'2 4');
writeln(f,'3 6');
writeln(f,'4 1');
writeln(f,'5 3');
writeln(f,'6 5');
end;
7: begin
writeln(f,7);
writeln(f,'1 1');
writeln(f,'2 3');
writeln(f,'3 5');
writeln(f,'4 7');
writeln(f,'5 2');
writeln(f,'6 4');
writeln(f,'7 6');
end;
end;
if n>=8 then
begin
sol;
writeln(f,n);
for i:=1 to n do
writeln(f,i,' ',x[i]);
end;
close(f);
end.