Cod sursa(job #491730)

Utilizator MihaicorneliuMihai Pojar Mihaicorneliu Data 12 octombrie 2010 10:07:00
Problema Multimi2 Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.46 kb
Program multimi2;
Var n,f:LongInt;
    i,o:Text;
Begin
  Assign(i,'multimi2.in');
  Reset(i);
  Assign(o,'multimi2.out');
  ReWrite(o);
  Read(i,n);

  If n mod 4=0 Then
  Begin
    WriteLn(o,'0');
    WriteLn(o,n div 2);
    for f:=1 to n do
      if (f mod 4=0)or(f mod 4=1) then
        Write(o,f,' ');
    WriteLn(o);
    WriteLn(o,n div 2);
    for f:=1 to n do
      if (f mod 4=2)or(f mod 4=3) then
        Write(o,f,' ')
  End;

  If n mod 4=1 Then
  Begin
    WriteLn(o,'1');
    WriteLn(o,n div 2 + 1);
    Write(o,'1 ');
    for f:=2 to n do
      if (f mod 4=1)or(f mod 4=2) then
        Write(o,f,' ');
    WriteLn(o);
    WriteLn(o,n div 2);
    for f:=2 to n do
      if (f mod 4=0)or(f mod 4=3) then
        Write(o,f,' ')
  End;

  If n mod 4=2 Then
  Begin
    WriteLn(o,'1');
    WriteLn(o,n div 2);
    Write(o,'1 ');
    for f:=3 to n do
      if (f mod 4=1)or(f mod 4=0) then
        Write(o,f,' ');
    WriteLn(o);
    WriteLn(o,n div 2);
    Write(o,'2 ');
    for f:=3 to n do
      if (f mod 4=2)or(f mod 4=3) then
        Write(o,f,' ')
  End;

  If n mod 4=3 Then
  Begin
    WriteLn(o,'0');
    WriteLn(o,n div 2);
    Write(o,'3 ');
    for f:=4 to n do
      if (f mod 4=1)or(f mod 4=2) then
        Write(o,f,' ');
    WriteLn(o);
    WriteLn(o,n div 2 + 1);
    Write(o,'1 2 ');
    for f:=1 to n do
      if (f mod 4=0)or(f mod 4=3) then
        Write(o,f,' ')
  End;

  Close(o)
End.