Cod sursa(job #118039)

Utilizator DanielGGlodeanu Ioan Daniel DanielG Data 22 decembrie 2007 23:21:23
Problema Multimi2 Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
var i,nr,n:longint;
nr1,dif:longint;
f,g:text;
a:array[1..60000] of byte;
begin
assign(f,'multimi2.in');reset(f);
assign(g,'multimi2.out');rewrite(g);
read(f,n);
nr:=0;
if n<60000 then begin
i:=n;  dif:=0;
while i-4>=0 do
begin
a[i]:=1;
a[i-1]:=2;
a[i-2]:=2;
a[i-3]:=1;
i:=i-4;
nr1:=(n div 4)*2;
end;
case i of
0: dif:=0;
1: begin
a[1]:=1;
dif:=1;
nr1:=nr1+1;
end;
2: begin
a[2]:=2;
a[1]:=1;
dif:=1;
nr:=nr+1;
end;
3: begin
a[1]:=1;
a[2]:=1;
a[3]:=2;
dif:=0;
nr1:=nr1+2;
end;
end;
writeln(g,dif);
writeln(g,nr1);
for i:=1 to n do
if a[i]=1 then write(g,i,' ');
writeln(g);
writeln(g,n-nr1);
for i:=1 to n do
if a[i]=2 then write(g,i,' ');
end
else
begin
case (n mod 4) of
0: begin
dif:=0;
nr1:=(n div 4)*2;
end;
1: begin
dif:=1;
nr:=(n div 4)*2;
end;
2: begin
dif:=1;
nr:=(n div 4)*2;
end;
3: begin
dif:=0;
nr1:=(n div 4)*2 +2;
end;
end;
writeln(g,dif);
writeln(g,nr1);
for i:=1 to nr1 do write(g,i,' ');
writeln(g);
writeln(g,n-nr1);
for i:=nr1+1 to n do write(g,i,' ');
end;
close(f);
close(g);
end.