First:
Main () {printf (& UNIX ["/021% six/012/0"], (UNIX) ["have"] + "fun"-0x60 );}
Second:
# Include <stdio. h>
Main (T, _,)
Char *;
{
Return! 0 <t? T <3? Main (
-79,-13, A + Main (
-87,1-_, main (
-86,0, A + 1
) +
)
): 1, t <_? Main (
T + 1, _,
): 3, main (-94,-27 + T, A) & t = 2? _ <13?
Main (2, _ + 1, "% S % d/N"): 9: 16: T <0? T <-72? Main (_, T,
"@ N' +, # '/* {} W +/W # cdnr/+, {} r/* de} +,/* {* +, /W {% +,/W # Q # N +,/# {L +,/n {n +,/+ # N + ,/#/
; # Q # N +,/+ k #; * +,/'r: 'd * '3,} {W + k W' K: '+} e #'; DQ # 'l/
Q # '+ d' K #! /+ K #; q # 'r} ekk #} w'r} ekk {NL] '/#; # Q # n') {) #} W '){) {NL] '/+ # n'; d} RW' I ;#/
) {NL]! /N {n # '; r {# w'r NC {NL]'/# {L, + 'K {RW 'ik {; [{NL] '/W # Q # n' wk NW '/
IWK {kk {NL]! /W {% 'l # W # 'I;: {NL]'/* {q # 'ld; R'} {nlwb! /* De} 'C/
; {NL '-{} RW]'/+, }##' *} # NC, ', # NW]'/+ KD '+ e} +; # 'rdq # W! NR '/')} +} {RL # '{n '')#/
} '+ }##(!! /")
: T <-50? _ = *? Putchar (31 [a]): Main (-65, _, A + 1): Main (* A = '/') + T, _, A + 1)
: 0 <t? Main (2, 2, "% s"): * A = '/' | main (0, main (-61, *,
"! Ek; dc I @ BK '(q)-[w] * % N + R3 # l, {}:/nuwloca-O; M. vpbks, fxntdceghiry "), A + 1 );
}
The first explanation:
Because: array STR [N] <=> (n) [STR]
So :( UNIX) ["have"] + "fun"-0x60 <=> "have" [1] + "fun"-0x60
That is: 'A' + "fun"-0x60
Because: 'A' = 0x61
So: it becomes "fun" + 1 (which implies the same type of operation Priority ?)
Because "fun" is a char pointer
So: Point to "UN"
Because:/021 is an octal number, representing the first character
Therefore: & 1 ["/021 UNIX/012/0"] <=> "UNIX/012/0"
Because: 012 is the line break of the octal,/0 is the end of the string
So: the final result is
UNIX