Cod sursa(job #109904)

Utilizator lianaliana tucar liana Data 25 noiembrie 2007 12:55:26
Problema Multimi2 Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 1, Clasele 5-8 Marime 2.72 kb
program multimi;
var f,g:text;
    n,i,ii,nn,j,jj:longint;
  begin
    assign(f,'multimi2.in'); reset(f);
    assign(g,'multimi2.out'); rewrite(g);
    readln(f,n);
    if (n mod 2=0) and (n div 2 mod 2=0) then
      begin
        writeln(g,'0');
        writeln(g,n div 2);
        for i:=1 to n div 2 div 2  do
          write(g,i,' ',n-i+1,' ');
        writeln(g);
        writeln(g,n div 2);
        for i:=n div 2 div 2+1 to n div 2 do
          write(g,i,' ',n-i+1,' ');
      end;
    if (n mod 2=0) and (n div 2 mod 2=1) then
      begin
        writeln(g,'0');
        writeln(g,n div 2);
         for i:=1 to n div 2 div 2  do
          write(g,i,' ',n-i+1,' ');
        write(g,i+i+1{+1});
        writeln(g);
        writeln(g,n div 2);
        write(g,i+i{+2}+2,' ');
        ii:=i;
        for i:=ii+1 {+ 3} to n div 2-1 do { n div 2 div 2+3 to n div 2 do  }
          write(g,i,' ',n-i+1,' ');
      end;
    if n mod 2=1 then
      begin
        if n div 2 mod 2=1  then
          begin
        nn:=n;
        writeln(g,'0');
        writeln(g,n div 2);
        while n>=1 do
          begin
            j:=j+1;
            write(g,n,' ');
            if j mod 2=0 then n:=n-1;
            if j mod 2=1 then n:=n-3;
          end;
        n:=nn-1;
        j:=0;
        writeln(g);
        writeln(g,nn div 2+1);
        while n>=1 do
          begin
            j:=j+1;
            write(g,n,' ');
            if j mod 2=0 then n:=n-3;
            if j mod 2=1 then n:=n-1;
          end;
          end;
          if n div 2 mod 2=0  then
          begin
        nn:=n;
        writeln(g,'1');
        writeln(g,n div 2+1);
        while n>=1 do
          begin
            j:=j+1;
            write(g,n,' ');
            if j mod 2=0 then n:=n-1;
            if j mod 2=1 then n:=n-3;
          end;
        n:=nn-1;
        j:=0;
        writeln(g);
        writeln(g,nn div 2);
        while n>=1 do
          begin
            j:=j+1;
            write(g,n,' ');
            if j mod 2=0 then n:=n-3;
            if j mod 2=1 then n:=n-1;
          end;
          end;
      end;
     {   for i:=2 to n div 2 div 2+2  do
          write(g,i,' ',n-i+1,' ');
        writeln(g);
        writeln(g,n div 2);
        ii:=i;
        for i:=ii+1 {+ 3} {to n div 2{-1 do { n div 2 div 2+3 to n div 2 do
          write(g,i,' ',n-i+1,' ');    }
 {     begin
        writeln(g,n div 2+1);
        write(g,'1',' ');
        for i:=2 to n div 2+1  do
          write(g,i,' ',n-i+1,' ');
        writeln(g);
        writeln(g,n div 2);
        ii:=i;
        for i:=ii+1 to n div 2+1 do
          write(g,i,' ',n-i+1,' ');
      end;   }

    close(f);
    close(g);
  end.