Cod sursa(job #109689)

Utilizator matemariaescuMaria Mateescu matemariaescu Data 25 noiembrie 2007 12:25:14
Problema Multimi2 Scor 50
Compilator fpc Status done
Runda preONI 2008, Runda 1, Clasele 5-8 Marime 2.3 kb
program multimi2;
var n, i : longint;
    fin, fout:text;

begin
  assign (fin,'multimi2.in'); reset(fin);
  assign (fout,'multimi2.out'); rewrite(fout);
  readln(fin,n);
  if n=2 then
    begin
      writeln(fout,1);
      writeln(fout,1);
      writeln(fout,1);
      writeln(fout,1);
      writeln(fout,2);
    end
    else if n = 3 then
      begin
        writeln(fout,0);
        writeln(fout,1);
        writeln(fout,3);
        writeln(fout,2);
        writeln(fout,'1 2');
      end
      else
        begin
          if n mod 4=0 then
            begin
              writeln(fout,0);
              writeln(fout,n div 2);
              for i:= 1 to n div 4 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout);
              writeln(fout,n div 2);
              for i :=n div 4 +1 to n div 4*2 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout);
            end;
          if n mod 4 =2 then
            begin
              writeln(fout,1);
              writeln(fout,n div 2);
              for i:= 1 to n div 4 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout,n div 4*2 +1);
              writeln(fout,n div 2);
              for i :=n div 4 +1 to n div 4*2 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout, n div 4*2+2);
            end;
          if n mod 4 =1 then
            begin
              writeln(fout,n div 2 +1);
              writeln(fout,n div 2);
              for i:= 1 to n div 4 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout);
              writeln(fout,n div 2+1 );
              for i :=n div 4 +1 to n div 4*2 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout, n div 4*2+1);
            end;
          if n mod 4 =3 then
            begin
              writeln(fout,n-n div 2 -2);
              writeln(fout,n div 2+1);
              for i:= 1 to n div 4 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout,n div 2,' ',n div 2+1);
              writeln(fout,n div 2 );
              for i :=n div 4 +1 to n div 4*2 do
                write(fout,i,' ',n-i+1,' ');
              writeln(fout, n div 2+2);
            end;
        end;
  close(fout) ;
  close(fin) ;
end.