Étienne Simon

Solution to the first problem of the Prologin 2012 selections in Brainfuck (commented)

,, Le jour n'est pas important
----------[,[-]] New line de @$!

,>-[<->-----]<+++   (0) premier chiffre du mois
>,----------[>+++[<->-------]<- (1) second chiffre du mois
    <[->>+<<]             (2) premier chiffre du mois (0) 0
    >>[-<<++++++++++>>]   (0) dixaine du mois (2) 0
    <[-<+>]               (0) le mois (1) 0
    ,[-]                  Espace innutile
]

,>-[<->-----]<+++   (1) millenaire
>,[-]

,>-[<->-----]<+++   (2) decenie du siecle
>,----------[>+++[<->-------]<- (3) annee de la decenie
    <[->>+<<]             (4) decenie du siecle (2) 0
    >>[-<<++++++++++>>]   (2) dixaine de l'annee du siecle (4) 0
    <[-<+>]               (2) l'annee du siecle (3) 0
]

<< Allons voir le millenaire en (1)
-[ 2em millenaire
    >> (3) marqueur du if siecle
    >+[<+>+++++]<--. 1
    [-]+
    <<-
]>>-[+ 1er millenaire
    Est on en 91 ?
    @3
    >--[<+>+++]<+++++ 91

    [>>+<<-]+
    <[>>>-<+<<-]
    >>[<<+>>-]
    >[<<->>[-]]
    <<
    @3
    [ On est en 91
        
        >+ @4 marqueur du if 91
        >+++++ @5 x

        >>>+<<<
        <<<<<[>>>>>>+>+<<<<<<<-]
        >>>>>>>[<<<<<<<+>>>>>>>-]
        <<[>>+<<-]
        >>[>-]>[<<<+>[-]>>->]<+<
        <[>-[>-]>[<<<+>[-]+>>->]<+<<-]

        @5 == 1 si peut participer
        <[ Peut
            ->+< @6 marqueur if
            >>+[<<+>>+++++]<<--. 1
            [-]
        ]>-[
            >[-]+[<+>+++++]<--. 0
            [-]
        ]

        <<<
        [-]
    ]>-[ On n'est pas en 91
        + @4
        >--[<+>+++]<+++++ 91
        >> >+<<<<<
        [>>>+>+<<<<-]
        >>>[<<<+>>>-]
        <[>+<-]+
        >>[>-]>[<<<->[-]>>->]<+<
        <[>-[>-]>[<<<->[-]+>>->]<+<<-]
        <
        [ On est apres 91
             @4
            >+[<+>+++++]<---. 1
            >+< @5 marqueur du if 91
            [-]
        ]>-[ On est avant 91
            @5
            >+[<+>+++++]<--. 0
            [-]
        ]
        [-]
    ]
    [-]
]
++++++++++. New line