FamillesComplexes

Posted on Jun 29, 2024

On reçoit un fichier python avec des class d’arbre généalogique, et quelques données non triés.

La première étape était de trier ces données:

# ARBRE 1
arbre1.ajouter("Henri Lafont", "1900-01-01")
arbre1.ajouter("Louise Dupont", "1902-02-02", "Henri Lafont")
arbre1.ajouter("Pierre Dupont", "1950-06-06", "Louise Dupont")
arbre1.ajouter("Mariette Dupont", "1975-11-11", "Pierre Dupont")
arbre1.ajouter("Lucille Dubois", "2000-01-01", "Mariette Dupont")
arbre1.ajouter("Paul Dubois", "2000-01-01", "Mariette Dupont")
arbre1.ajouter("Lucie Dubois", "2000-01-01", "Mariette Dupont")
arbre1.ajouter("Marc Duchallet", "2000-01-01", "Mariette Dupont")

arbre1.ajouter("Pascal Dupont", "1950-06-06", "Louise Dupont")

arbre1.ajouter("Jean Lafont", "1925-03-03", "Henri Lafont")
arbre1.ajouter("Marinette Lafont", "1950-06-06", "Jean Lafont")
arbre1.ajouter("Susy Lafont", "1950-06-06", "Jean Lafont")
arbre1.ajouter("Marco Lafont", "1950-06-06", "Jean Lafont")

arbre1.ajouter("Claire Moreau", "1927-04-04", "Henri Lafont")
arbre1.ajouter("Marie Moreau", "1950-06-06", "Claire Moreau")
arbre1.ajouter("Paul Moreau", "1950-06-06", "Claire Moreau")
arbre1.ajouter("Sophie Moreau", "1950-06-06", "Claire Moreau")

arbre1.ajouter("Georgette Dupont", "1929-05-05", "Henri Lafont")
arbre1.ajouter("Lucas Dupont", "1950-06-06", "Georgette Dupont")
arbre1.ajouter("Lucie Dupont", "2000-01-01", "Lucas Dupont")
arbre1.ajouter("Thomy Pastel", "2022-05-05", "Lucie Dupont")
arbre1.ajouter("Pierre Pastel", "2022-05-05", "Lucie Dupont")
arbre1.ajouter("Marc Dupont", "2022-05-05", "Lucie Dupont")

arbre1.ajouter("Thomas Dupont", "2000-01-01", "Lucas Dupont")
arbre1.ajouter("Julie Dupont", "2022-05-05", "Thomas Dupont")
arbre1.ajouter("Léo Dupont", "2022-05-05", "Thomas Dupont")
arbre1.ajouter("Nina Dupont", "2022-05-05", "Thomas Dupont")

arbre1.ajouter("Emma Dupont", "2000-01-01", "Lucas Dupont")
arbre1.ajouter("Isabelle Dupont", "2022-05-05", "Emma Dupont")
arbre1.ajouter("Jacques Pastel", "2022-05-05", "Emma Dupont")
arbre1.ajouter("Alex Dupont", "2022-05-05", "Emma Dupont")

# ARBRE 2
arbre2.ajouter("Jeanne Pascal", "1900-01-01")
arbre2.ajouter("Jean Lafont", "1925-03-03", "Jeanne Pascal")
arbre2.ajouter("Louise Lafont", "1925-03-03", "Jeanne Pascal")
arbre2.ajouter("Marie Lafont2", "1950-06-06", "Louise Lafont")
arbre2.ajouter("Roger Lafont", "1950-06-06", "Louise Lafont")
arbre2.ajouter("Thomas Pastel", "1950-06-06", "Roger Lafont")
arbre2.ajouter("Jacques Pastel", "1950-06-06", "Roger Lafont")
arbre2.ajouter("Lucas Lafont", "1950-06-06", "Roger Lafont")

arbre2.ajouter("Claude Moreau", "1927-04-04", "Jeanne Pascal")
arbre2.ajouter("Sophie Moreau", "1929-05-05", "Claude Moreau")
arbre2.ajouter("Pierre Lafont", "1929-05-05", "Claude Moreau")
arbre2.ajouter("Georges Lafont", "1929-05-05", "Claude Moreau")
arbre2.ajouter("Marie Lafont1", "1929-05-05", "Claude Moreau")
arbre2.ajouter("Marc Duchallet", "1950-06-06", "Marie Lafont1")
arbre2.ajouter("Lucie Moreau", "1950-06-06", "Marie Lafont1")
arbre2.ajouter("Lucie Lafont", "1950-06-06", "Marie Lafont1")
arbre2.ajouter("Thomas Lafont", "1950-06-06", "Marie Lafont1")
arbre2.ajouter("Paul Moreau", "1950-06-06", "Marie Lafont1")
arbre2.ajouter("Emma Lafont", "1950-06-06", "Marie Lafont")

# ARBRE 3

arbre3.ajouter("Robert Dupuis", "1890-01-01")
arbre3.ajouter("Jean Lafont", "1925-03-03", "Robert Dupuis")
arbre3.ajouter("Claire Moreau", "1927-04-04", "Jean Lafont")
arbre3.ajouter("Paul Moreau", "1956-09-09", "Claire Moreau")
arbre3.ajouter("Maxime Moreau", "1982-03-03", "Paul Moreau")
arbre3.ajouter("Nina Moreau", "2006-08-08", "Maxime Moreau")

arbre3.ajouter("Sophie Moreau", "1954-08-08", "Claire Moreau")
arbre3.ajouter("Emma Moreau", "1980-02-02", "Sophie Moreau")
arbre3.ajouter("Léo Moreau", "2004-07-07", "Emma Moreau")

arbre3.ajouter("Pierre Dupuis", "1950-06-06", "Jean Lafont")
arbre3.ajouter("Marc Dupuis", "1975-11-11", "Pierre Dupuis")
arbre3.ajouter("Lucie Dupuis", "2000-01-01", "Marc Dupuis")
arbre3.ajouter("Alex Dupuis", "2022-05-05", "Lucie Dupuis")

arbre3.ajouter("Marie Dupuis", "1952-07-07", "Jean Lafont")
arbre3.ajouter("Thomas Dupuis", "1978-12-12", "Marie Dupuis")
arbre3.ajouter("Isabelle Dupuis", "2002-06-06", "Thomas Dupuis")

arbre3.ajouter("Louise Lafont", "1902-02-02", "Robert Dupuis")
arbre3.ajouter("Georges Lafont", "1929-05-05", "Louise Lafont")
arbre3.ajouter("Lucas Lafont", "1958-10-10", "Georges Lafont")
arbre3.ajouter("Julie Lafont", "1984-04-04", "Lucas Lafont")

arbre2.ajouter("Pierrette Dupont", "1950-06-06", "Louise Lafont")

Ensuite, j’ai tout exporter au format JSON puis ensuite converti en arbre:

·
├── 1900-01-01 Henri Lafont
│   ├── 1902-02-02 Louise Dupont
│   │   ├── 1950-06-06 Pierre Dupont
│   │   │   └── 1975-11-11 Mariette Dupont
│   │   │       ├── 2000-01-01 Lucille Dubois
│   │   │       ├── 2000-01-01 Paul Dubois
│   │   │       ├── 2000-01-01 Lucie Dubois
│   │   │       └── 2000-01-01 Marc Duchallet
│   │   └── 1950-06-06 Pascal Dupont
│   ├── 1925-03-03 Jean Lafont
│   │   ├── 1950-06-06 Marinette Lafont
│   │   ├── 1950-06-06 Susy Lafont
│   │   └── 1950-06-06 Marco Lafont
│   ├── 1927-04-04 Claire Moreau
│   │   ├── 1950-06-06 Marie Moreau
│   │   ├── 1950-06-06 Paul Moreau
│   │   └── 1950-06-06 Sophie Moreau
│   └── 1929-05-05 Georgette Dupont
│       └── 1950-06-06 Lucas Dupont
│           ├── 2000-01-01 Lucie Dupont
│           │   ├── 2022-05-05 Thomy Pastel
│           │   ├── 2022-05-05 Pierre Pastel
│           │   └── 2022-05-05 Marc Dupont
│           ├── 2000-01-01 Thomas Dupont
│           │   ├── 2022-05-05 Julie Dupont
│           │   ├── 2022-05-05 Léo Dupont
│           │   └── 2022-05-05 Nina Dupont
│           └── 2000-01-01 Emma Dupont
│               ├── 2022-05-05 Isabelle Dupont
│               ├── 2022-05-05 Jacques Pastel
│               └── 2022-05-05 Alex Dupont
├── 1900-01-01 Jeanne Pascal
│   ├── 1925-03-03 Jean Lafont
│   ├── 1925-03-03 Louise Lafont
│   │   ├── 1950-06-06 Marie Lafont2
│   │   ├── 1950-06-06 Roger Lafont
│   │   │   ├── 1950-06-06 Thomas Pastel
│   │   │   ├── 1950-06-06 Jacques Pastel
│   │   │   └── 1950-06-06 Lucas Lafont
│   │   └── 1950-06-06 Pierrette Dupont
│   └── 1927-04-04 Claude Moreau
│       ├── 1929-05-05 Sophie Moreau
│       ├── 1929-05-05 Pierre Lafont
│       ├── 1929-05-05 Georges Lafont
│       └── 1929-05-05 Marie Lafont1
│           ├── 1950-06-06 Marc Duchallet
│           ├── 1950-06-06 Lucie Moreau
│           ├── 1950-06-06 Lucie Lafont
│           ├── 1950-06-06 Thomas Lafont
│           └── 1950-06-06 Paul Moreau
└── 1890-01-01 Robert Dupuis
    ├── 1925-03-03 Jean Lafont
    │   ├── 1927-04-04 Claire Moreau
    │   │   ├── 1956-09-09 Paul Moreau
    │   │   │   └── 1982-03-03 Maxime Moreau
    │   │   │       └── 2006-08-08 Nina Moreau
    │   │   └── 1954-08-08 Sophie Moreau
    │   │       └── 1980-02-02 Emma Moreau
    │   │           └── 2004-07-07 Léo Moreau
    │   ├── 1950-06-06 Pierre Dupuis
    │   │   └── 1975-11-11 Marc Dupuis
    │   │       └── 2000-01-01 Lucie Dupuis
    │   │           └── 2022-05-05 Alex Dupuis
    │   └── 1952-07-07 Marie Dupuis
    │       └── 1978-12-12 Thomas Dupuis
    │           └── 2002-06-06 Isabelle Dupuis
    └── 1902-02-02 Louise Lafont
        └── 1929-05-05 Georges Lafont
            └── 1958-10-10 Lucas Lafont
                └── 1984-04-04 Julie Lafont

Il ne restait plus qu’à cherché le flag.

Je recherche le cousin au 3ème degré de Paul Dubois, 
homonyme d'un cousin au 2ème degré de Marc Duchallet.

Flag : SHLK{Prénom-Nom}

1. Cousin au 3ème degré de Paul Dubois

Ils partagent donc leur arrière arrière grand père. Donc, ils partagent Henri Lafont.

Les possibilités sont donc:

  • Thomy Pastel
  • Pierre Pastel
  • Marc Dupont
  • Julie Dupont
  • Léo Dupont
  • Nina Dupont
  • Isabelle Dupont
  • Jacques Pastel
  • Alex Dupont

2. homonyme d’un cousin au 2ème degré de Marc Duchallet.

L’homonyme partage donc l’arrière grand mère avec Marc Duchallet. Ils partagent donc Jeanne Pascal.

Les possibilités sont donc:

  • Thomas Pastel
  • Jacques Pastel
  • Lucas Lafont

On remarque que Jacques Pastel apparaît dans les deux listes.

Solution

Le flag obtenu est:

SHLK{Jacques-Pastel}