/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

import java.io.*;

public class TriageTableau2 {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));

  /* Fonction d'affichage de tous les entiers contenus    */
  /* dans un tableau d'entiers                            */

  public static void affichageTableau(int [] t) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ )
      System.out.println(t[i]);
  }

  /* Fonction d'initialisation de tous les entiers        */
  /* contenus dans un tableau d'entiers                   */
  /* avec une valeur tiree au sort entre 0 et max inclus  */

  public static void initialisationTableau(int [] t,int max) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ ) {
  /* Initialisation de t[i] avec un entier tire                */
  /* au hasard entre 0.0 (inclu) et max+1 (exclu)              */
      t[i] =(int) ((max+1)*Math.random()); }
  }

  /* Fonction de reorganisation d'un tableau d'entiers pour    */
  /* placer toutes les valeurs paires aux petits indices       */
  /* et les valeurs impaires aux indices superieurs            */

  public static void triageTableau(int [] t) {
  /* Declaration et allocation d'un tableaux d'entiers         */
  /* auxiliaire destine a recueillir des valeurs paires        */
  /* et impaires (dimensionnes a la taille de t)               */
    int [] tmp = new int[t.length];
  /* Declaration et initialisation d'un compteur entier        */
  /* donnant l'indice de la premiere place disponible          */
  /* dans le tableau tmp                                       */
    int cpprem = 0;
  /* Declaration et initialisation d'un compteur entier        */
  /* donnant l'indice de la derniere place disponible          */
  /* dans le tableau tmp                                       */ 
    int cpdern = t.length-1;
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ )
  /* Si la valeur d'indice i est paire, elle est copiee        */
  /* dans tmp a la premiere place disponible et cptpr est      */
  /* ajuste, sinon elle est copiee a la derniere place         */
  /* disponible et cptmp est ajuste                            */    
      if ( (t[i]%2) == 0 ) {
        tmp[cpprem] = t[i];
        cpprem++; }
        else {
        tmp[cpdern] = t[i];
        cpdern--; }
  /* Report dans t de l'integralite des valeurs de tmp         */
    for ( i = 0 ; i < t.length ; i++ )
      t[i] = tmp[i];
  }

  /* Fonction principale                                  */
  
  public static void main(String [] args) throws IOException {
  /* Definition et allocation d'un tableau de 10 entiers       */
  /* tires au sort entre 0 et 5                                */
    int [] tab = new int[10];
    initialisationTableau(tab,5);
    System.out.println("Le tableau contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage                           */
    affichageTableau(tab);
    System.out.println();
  /* Reorganisation de tab par appel a triageTableau           */
    triageTableau(tab);
  /* Nouvel affichage de tab (reorganise) par appel            */
  /* a la fonction d'affichage                                 */
    affichageTableau(tab);
  }
}