This question is part of a series Brain-flak Birthday challenges designed to celebrate Brain-Flak's first Birthday. You can find more information about Brain-Flak's Birthday here.
Today is Brain-Flak's first Birthday! So I thought we would throw it a surprise birthday party. So in your favorite language print
Surprise!
Happy Birthday, Brain-Flak!
(Trailing whitespace is permitted)
As always programs should be golfed. However since Brain-Flak programs are made of brackets, it wont count any brackets in your source against you. (The characters ()[]<>{}
don't count towards your byte total), but they must be balanced as to not upset Brain-Flak.
Rules
Here is a breakdown of the rules
The brackets in your source must be balanced. That is the parentheses of your program must be spanned by the following grammar:
S -> SS | (S) | [S] | <S> | {S} | E
where
E
is the empty string.That is to say that a balanced string is either the concatenation of two balanced strings, braces around a balanced string, or the empty string.
The score of a program is the number of non-bracket bytes.
Your goal should be to minimize your score in whatever language you choose.
Standard rules apply so you may write either a complete program or a function.
in the event of a tie raw byte count acts as a tie breaker
There are certainly going to be zero byte solutions in certain languages (Parenthesis Hell, Parenthetic, Glypho, Lenguage). Try to find ways to golf well in languages where this is not a trivial task.