Pagini recente » Cod sursa (job #937961) | Cod sursa (job #1035006) | Cod sursa (job #1910766) | Cod sursa (job #1902642) | Cod sursa (job #284790)
Cod sursa(job #284790)
//sunt 2 cazuri posibile
// {
// n=2*k -> elem[i] corespunde cu elem[n-i+1] , diferenta=0
// n=2*k+1 ,iar aici mai sunt 2 cazuri
// {
// n=4*k+1 -> se numara de la 2 la n
// -> {4*k, 4*k+3} corespund cu {4*k+1, 4*k+2}
// -> elementul 1 se pune in M sau in N , diferenta=1
// n=4*k+3 -> se numara de la 4 la n
// -> {4*k, 4*k+3} corespund cu {4*k+1, 4*k+2}
// -> 1 + 2 = 3 ,diferenta=0
// }
// }
var f,g:text;
n,i:longint;
begin
assign(f,'multimi2.in');reset(f);
assign(g,'multimi2.out');rewrite(g);
read(f,n);
if n mod 2=0 then begin
writeln(g,'0');
writeln(g,n div 2);
for i:=1 to n div 2 do
write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=n div 2 +1 to n do
write(g,i,' ');
writeln(g);
end
else
if n mod 4=1 then begin
writeln(g,'1');
writeln(g,n div 2+1);
write(g,'1 ');
for i:=2 to n do
if (i mod 4=0)or(i mod 4=3) then write(g,i,' ');
writeln(g);
writeln(g,n div 2);
for i:=2 to n do
if (i mod 4=1)or(i mod 4=2) then write(g,i,' ');
writeln(g);
end
else
if n mod 4=3 then begin
writeln(g,'0');
writeln(g,n div 2+1);
write(g,'1 2 ');
for i:=4 to n do
if (i mod 4=0)or(i mod 4=3) then write(g,i,' ');
writeln(g);
writeln(g,n div 2);
write(g,'3 ');
for i:=4 to n do
if (i mod 4=1)or(i mod 4=2) then write(g,i,' ');
end;
close(f);
close(g);
end.