Cod sursa(job #120293)

Utilizator info_arrandrei gigea info_arr Data 4 ianuarie 2008 20:12:31
Problema Multimi2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.93 kb
#include <cstdio>
#include <cstring>

using namespace std;

#define FIN "multimi2.in"
#define FOUT "multimi2.out"

int N;

    void solve ()
    {
         int i;
         if (!(N % 4))
         {
                 int lim = N/4 - 1;
                 printf ("0\n");
                 printf ("%d\n", lim * 2 + 1);
                 printf ("3");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i, 4*i + 3);
                 printf ("\n%d\n", (lim + 1) * 2);
                 printf ("1 2");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i + 1, 4*i + 2);
         }
         if (N % 4 == 1)
         {
                 N--;
                 int lim = N/4 - 1;
                 printf ("1\n");
                 printf ("%d\n", lim * 2 + 2);
                 printf ("3");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i, 4*i + 3);
                 printf (" %d", N);
                 printf ("\n%d\n", (lim + 1) * 2 + 1);
                 printf ("1 2");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i + 1, 4*i + 2);
                 printf (" %d", N - 1);
         }
      /*   if (N % 4 == 2)
         {
                 N -= 2;
                 int lim = N/4 - 1;
                 printf ("0\n");
                 printf ("%d\n", lim * 2 + 1);
                 printf ("3");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i, 4*i + 3);
                 printf ("\n%d\n", (lim + 1) * 2);
                 printf ("1 2");
                 for (i = 1; i <= lim; ++i)
                     printf (" %d %d", 4*i + 1, 4*i + 2);
         }*/
    }

    int main ()
    {
        freopen (FIN, "r", stdin);
        freopen (FOUT, "w", stdout);
        
        scanf ("%d", &N);
        solve ();
        
        return 0;
    }