int main() {
  int H, U, D, F;
  double k;
  double s = 0.0;
  int flag;
  int ans1, ans2;
  int k1;
  while (scanf("%d%d%d%d", &H, &U, &D, &F), H || U || D || F) {
    flag = 1;
    k = floor(((100.0 + F) * U - 100.0 * D) / (F * U));
    if (k <= 0)
      flag = 0;
    if (flag)
      s = k * U - F * U * k * (k - 1) / 200.0 - (k - 1) * D;
    flag = (flag && s > H);
    if (flag) {
      ans1 = floor((200.0 * U + F * U - 200.0 * D +
                    sqrt(pow(200.0 * U + F * U - 200.0 * D, 2) -
                         800.0 * F * U * (H - D))) /
                       (2.0 * F * U) -
                   1e-6);
      ans2 = ceil((200.0 * U + F * U - 200.0 * D -
                   sqrt(pow(200.0 * U + F * U - 200.0 * D, 2) -
                        800.0 * F * U * (H - D))) /
                      (2.0 * F * U) +
                  1e-6);
      if (ans2 > 0)
        ans1 = ans2;
      printf("success on day %d\n", ans1);
    } else {
      k1 = ceil((100.0 + F) / F);
      ans1 = ceil(200.0 * (U - D) / (F * U) + 1 + 1e-6);
      ans2 =
          ceil((200.0 * k1 * U - k1 * (k1 - 1) * F * U) / (200.0 * D) + 1e-6);
      if (ans1 <= 0 || ans1 >= k1)
        ans1 = ans2;
      printf("failure on day %d\n", ans1);
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movl   $0x0,-0x4(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x28(%rbp)
lea    0xeba(%rip),%rdi
lea    -0x8(%rbp),%rsi
lea    -0xc(%rbp),%rdx
lea    -0x10(%rbp),%rcx
lea    -0x14(%rbp),%r8
mov    $0x0,%al
call   1050 <scanf@plt>
mov    $0x1,%al
cmpl   $0x0,-0x8(%rbp)
mov    %al,-0x39(%rbp)
jne    11cc <main+0x6c>
mov    $0x1,%al
cmpl   $0x0,-0xc(%rbp)
mov    %al,-0x39(%rbp)
jne    11cc <main+0x6c>
mov    $0x1,%al
cmpl   $0x0,-0x10(%rbp)
mov    %al,-0x39(%rbp)
jne    11cc <main+0x6c>
cmpl   $0x0,-0x14(%rbp)
setne  %al
mov    %al,-0x39(%rbp)
mov    -0x39(%rbp),%al
test   $0x1,%al
jne    11dc <main+0x7c>
jmp    1680 <main+0x520>
movl   $0x1,-0x2c(%rbp)
cvtsi2sdl -0x14(%rbp),%xmm1
movsd  0xe10(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0xc(%rbp),%xmm2
cvtsi2sdl -0x10(%rbp),%xmm3
movsd  0xdfa(%rip),%xmm1
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
call   1080 <floor@plt>
movsd  %xmm0,-0x20(%rbp)
xorps  %xmm0,%xmm0
ucomisd -0x20(%rbp),%xmm0
jb     1257 <main+0xf7>
movl   $0x0,-0x2c(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     12f5 <main+0x195>
movsd  -0x20(%rbp),%xmm1
cvtsi2sdl -0xc(%rbp),%xmm2
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
mulsd  -0x20(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm3
movsd  0xd80(%rip),%xmm4
subsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm0
movsd  0xd78(%rip),%xmm3
divsd  %xmm3,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
movsd  0xd40(%rip),%xmm2
subsd  %xmm2,%xmm0
cvtsi2sdl -0x10(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
xor    %eax,%eax
cmpl   $0x0,-0x2c(%rbp)
mov    %al,-0x3a(%rbp)
je     1318 <main+0x1b8>
movsd  -0x28(%rbp),%xmm0
cvtsi2sdl -0x8(%rbp),%xmm1
ucomisd %xmm1,%xmm0
seta   %al
mov    %al,-0x3a(%rbp)
mov    -0x3a(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1565 <main+0x405>
cvtsi2sdl -0xc(%rbp),%xmm1
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0xccb(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  0xcd6(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
cvtsi2sdl -0xc(%rbp),%xmm1
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0xc91(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  0xc9c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc7c(%rip),%xmm1
call   1060 <pow@plt>
movaps %xmm0,%xmm1
cvtsi2sdl -0x14(%rbp),%xmm2
movsd  0xc6f(%rip),%xmm0
mulsd  %xmm2,%xmm0
cvtsi2sdl -0xc(%rbp),%xmm2
mulsd  %xmm2,%xmm0
mov    -0x8(%rbp),%eax
sub    -0x10(%rbp),%eax
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1070 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x50(%rbp),%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0x14(%rbp),%xmm2
movsd  0xc13(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvtsi2sdl -0xc(%rbp),%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  0xbf2(%rip),%xmm1
subsd  %xmm1,%xmm0
call   1080 <floor@plt>
cvttsd2si %xmm0,%eax
mov    %eax,-0x30(%rbp)
cvtsi2sdl -0xc(%rbp),%xmm1
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0xbc2(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  0xbcd(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
cvtsi2sdl -0xc(%rbp),%xmm1
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0xb88(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  0xb93(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xb73(%rip),%xmm1
call   1060 <pow@plt>
movaps %xmm0,%xmm1
cvtsi2sdl -0x14(%rbp),%xmm2
movsd  0xb66(%rip),%xmm0
mulsd  %xmm2,%xmm0
cvtsi2sdl -0xc(%rbp),%xmm2
mulsd  %xmm2,%xmm0
mov    -0x8(%rbp),%eax
sub    -0x10(%rbp),%eax
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1070 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x48(%rbp),%xmm0
subsd  %xmm1,%xmm0
cvtsi2sdl -0x14(%rbp),%xmm2
movsd  0xb0a(%rip),%xmm1
mulsd  %xmm2,%xmm1
cvtsi2sdl -0xc(%rbp),%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  0xae9(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x34(%rbp)
jle    154f <main+0x3ef>
mov    -0x34(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%esi
lea    0xae8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    167b <main+0x51b>
cvtsi2sdl -0x14(%rbp),%xmm1
movsd  0xa8e(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0x14(%rbp),%xmm1
divsd  %xmm1,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
mov    %eax,-0x38(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x10(%rbp),%eax
cvtsi2sd %eax,%xmm1
movsd  0xa73(%rip),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  0xa50(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xa54(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
mov    %eax,-0x30(%rbp)
cvtsi2sdl -0x38(%rbp),%xmm1
movsd  0xa2f(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsi2sdl -0xc(%rbp),%xmm2
mov    -0x38(%rbp),%eax
mov    -0x38(%rbp),%ecx
sub    $0x1,%ecx
imul   %ecx,%eax
imul   -0x14(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0x10(%rbp),%xmm2
movsd  0x9e2(%rip),%xmm1
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  0x9da(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
mov    %eax,-0x34(%rbp)
cmpl   $0x0,-0x30(%rbp)
jle    1664 <main+0x504>
mov    -0x30(%rbp),%eax
cmp    -0x38(%rbp),%eax
jl     166a <main+0x50a>
mov    -0x34(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%esi
lea    0x9e0(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1177 <main+0x17>
xor    %eax,%eax
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
lea    0xeeb(%rip),%rdi
lea    0x1c(%rsp),%rsi
lea    0xc(%rsp),%rdx
lea    0x18(%rsp),%rcx
lea    0x8(%rsp),%r8
xor    %eax,%eax
call   1050 <scanf@plt>
mov    0x1c(%rsp),%r14d
mov    0xc(%rsp),%r13d
mov    0x18(%rsp),%r15d
mov    0x8(%rsp),%ebx
test   %r14d,%r14d
jne    11aa <main+0x5a>
test   %r13d,%r13d
jne    11aa <main+0x5a>
test   %r15d,%r15d
jne    11aa <main+0x5a>
test   %ebx,%ebx
je     153c <main+0x3ec>
lea    0x8(%rsp),%r12
nop
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  %xmm0,0x30(%rsp)
xorps  %xmm2,%xmm2
cvtsi2sd %r13d,%xmm2
xorps  %xmm1,%xmm1
cvtsi2sd %r15d,%xmm1
addsd  0xe2b(%rip),%xmm0
movsd  %xmm1,0x10(%rsp)
mulsd  0xe25(%rip),%xmm1
movsd  %xmm0,0x40(%rsp)
movsd  %xmm2,0x20(%rsp)
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
imul   %r13d,%ebx
xorps  %xmm1,%xmm1
cvtsi2sd %ebx,%xmm1
movsd  %xmm1,0x28(%rsp)
divsd  %xmm1,%xmm0
call   1070 <floor@plt>
xorpd  %xmm1,%xmm1
ucomisd %xmm0,%xmm1
jae    12e0 <main+0x190>
movapd %xmm0,%xmm1
mulsd  0x28(%rsp),%xmm1
movapd %xmm0,%xmm2
addsd  0xddb(%rip),%xmm2
mulsd  %xmm2,%xmm1
divsd  0xdd7(%rip),%xmm1
mulsd  0x20(%rsp),%xmm0
addsd  %xmm1,%xmm0
mulsd  0x10(%rsp),%xmm2
subsd  %xmm2,%xmm0
xorps  %xmm1,%xmm1
cvtsi2sd %r14d,%xmm1
ucomisd %xmm1,%xmm0
jbe    12e0 <main+0x190>
movsd  0x20(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  0xdab(%rip),%xmm0
addsd  0x28(%rsp),%xmm0
movsd  0x10(%rsp),%xmm2
mulsd  0xd8f(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm4
mulsd  %xmm2,%xmm4
sub    %r15d,%r14d
xorps  %xmm1,%xmm1
cvtsi2sd %r14d,%xmm1
movsd  0x30(%rsp),%xmm0
mulsd  0xd8a(%rip),%xmm0
mulsd  %xmm3,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm4,%xmm0
ucomisd 0xd86(%rip),%xmm0
movapd %xmm2,%xmm1
jb     13a0 <main+0x250>
sqrtsd %xmm0,%xmm0
jmp    13b1 <main+0x261>
cs nopw 0x0(%rax,%rax,1)
nop
movsd  0x40(%rsp),%xmm0
divsd  0x30(%rsp),%xmm0
call   1030 <ceil@plt>
movapd %xmm0,0x30(%rsp)
cvttsd2si %xmm0,%r14d
sub    %r15d,%r13d
xorps  %xmm0,%xmm0
cvtsi2sd %r13d,%xmm0
movsd  0xd11(%rip),%xmm1
mulsd  %xmm1,%xmm0
divsd  0x28(%rsp),%xmm0
addsd  0xd07(%rip),%xmm0
movsd  0xd07(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%ebp
cvttpd2dq 0x30(%rsp),%xmm0
cvtdq2pd %xmm0,%xmm0
movsd  0xcd8(%rip),%xmm2
mulsd  %xmm2,%xmm0
lea    -0x1(%r14),%eax
imul   %r14d,%ebx
imul   %eax,%ebx
xorps  %xmm1,%xmm1
cvtsi2sd %ebx,%xmm1
mulsd  0x20(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
addsd  0xcb2(%rip),%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
cmp    %r14d,%ebp
mov    %eax,%esi
cmovl  %ebp,%esi
test   %ebp,%ebp
cmovle %eax,%esi
lea    0xcd1(%rip),%rdi
jmp    14df <main+0x38f>
movsd  %xmm1,0x10(%rsp)
call   1060 <sqrt@plt>
movsd  0x10(%rsp),%xmm1
mov    0x8(%rsp),%ebx
xorps  %xmm2,%xmm2
cvtsi2sd %ebx,%xmm2
movsd  %xmm2,0x10(%rsp)
addsd  %xmm0,%xmm1
movapd %xmm2,%xmm0
mov    0xc(%rsp),%ebp
xorps  %xmm2,%xmm2
cvtsi2sd %ebp,%xmm2
movsd  %xmm2,0x20(%rsp)
addsd  %xmm0,%xmm0
mulsd  %xmm2,%xmm0
divsd  %xmm0,%xmm1
addsd  0xc51(%rip),%xmm1
movapd %xmm1,%xmm0
call   1070 <floor@plt>
movapd %xmm0,%xmm3
imul   %ebx,%ebp
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
movsd  0x20(%rsp),%xmm5
movapd %xmm5,%xmm1
mulsd  0xc08(%rip),%xmm1
addsd  %xmm0,%xmm1
mov    0x18(%rsp),%eax
xorps  %xmm2,%xmm2
cvtsi2sd %eax,%xmm2
mulsd  0xbe9(%rip),%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
mov    0x1c(%rsp),%ecx
sub    %eax,%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
movsd  0x10(%rsp),%xmm4
mulsd  0xbe2(%rip),%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm1,%xmm4
addsd  %xmm0,%xmm4
movapd %xmm4,%xmm0
ucomisd 0xbda(%rip),%xmm4
jb     1476 <main+0x326>
sqrtsd %xmm0,%xmm0
jmp    1493 <main+0x343>
movsd  %xmm2,0x10(%rsp)
movsd  %xmm3,0x20(%rsp)
call   1060 <sqrt@plt>
movsd  0x20(%rsp),%xmm3
movsd  0x10(%rsp),%xmm2
cvttsd2si %xmm3,%r14d
subsd  %xmm0,%xmm2
xorps  %xmm0,%xmm0
cvtsi2sdl 0x8(%rsp),%xmm0
xorps  %xmm1,%xmm1
cvtsi2sdl 0xc(%rsp),%xmm1
addsd  %xmm0,%xmm0
mulsd  %xmm0,%xmm1
divsd  %xmm1,%xmm2
addsd  0xb6e(%rip),%xmm2
movapd %xmm2,%xmm0
call   1030 <ceil@plt>
cvttsd2si %xmm0,%eax
test   %eax,%eax
cmovg  %eax,%r14d
lea    0xb7d(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xb63(%rip),%rdi
lea    0x1c(%rsp),%rsi
lea    0xc(%rsp),%rdx
lea    0x18(%rsp),%rcx
mov    %r12,%r8
xor    %eax,%eax
call   1050 <scanf@plt>
mov    0x1c(%rsp),%r14d
mov    0xc(%rsp),%r13d
mov    0x18(%rsp),%r15d
mov    0x8(%rsp),%ebx
test   %r14d,%r14d
jne    11b0 <main+0x60>
test   %r13d,%r13d
jne    11b0 <main+0x60>
test   %r15d,%r15d
jne    11b0 <main+0x60>
test   %ebx,%ebx
jne    11b0 <main+0x60>
xor    %eax,%eax
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [9 x i8] c"%d%d%d%d\00"
@.str.1 = [19 x i8] c"success on day %d\0A\00"
@.str.2 = [19 x i8] c"failure on day %d\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca double
%7 = alloca double
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
store i32 0, i32* %1
store double 0.000000e+00, double* %7
br label %12
12: ; preds = %240, %0
%13 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i32* %2, i32* %3, i32* %4, i32* %5)
%14 = load i32, i32* %2
%15 = icmp ne i32 %14, 0
br i1 %15, label %25, label %16
16: ; preds = %12
%17 = load i32, i32* %3
%18 = icmp ne i32 %17, 0
br i1 %18, label %25, label %19
19: ; preds = %16
%20 = load i32, i32* %4
%21 = icmp ne i32 %20, 0
br i1 %21, label %25, label %22
22: ; preds = %19
%23 = load i32, i32* %5
%24 = icmp ne i32 %23, 0
br label %25
25: ; preds = %22, %19, %16, %12
%26 = phi i1 [ true, %19 ], [ true, %16 ], [ true, %12 ], [ %24, %22 ]
br i1 %26, label %27, label %241
27: ; preds = %25
store i32 1, i32* %8
%28 = load i32, i32* %5
%29 = sitofp i32 %28 to double
%30 = fadd double 1.000000e+02, %29
%31 = load i32, i32* %3
%32 = sitofp i32 %31 to double
%33 = load i32, i32* %4
%34 = sitofp i32 %33 to double
%35 = fmul double 1.000000e+02, %34
%36 = fneg double %35
%37 = call double @llvm.fmuladd.f64(double %30, double %32, double %36)
%38 = load i32, i32* %5
%39 = load i32, i32* %3
%40 = mul nsw i32 %38, %39
%41 = sitofp i32 %40 to double
%42 = fdiv double %37, %41
%43 = call double @llvm.floor.f64(double %42)
store double %43, double* %6
%44 = load double, double* %6
%45 = fcmp ole double %44, 0.000000e+00
br i1 %45, label %46, label %47
46: ; preds = %27
store i32 0, i32* %8
br label %47
47: ; preds = %46, %27
%48 = load i32, i32* %8
%49 = icmp ne i32 %48, 0
br i1 %49, label %50, label %72
50: ; preds = %47
%51 = load double, double* %6
%52 = load i32, i32* %3
%53 = sitofp i32 %52 to double
%54 = load i32, i32* %5
%55 = load i32, i32* %3
%56 = mul nsw i32 %54, %55
%57 = sitofp i32 %56 to double
%58 = load double, double* %6
%59 = fmul double %57, %58
%60 = load double, double* %6
%61 = fsub double %60, 1.000000e+00
%62 = fmul double %59, %61
%63 = fdiv double %62, 2.000000e+02
%64 = fneg double %63
%65 = call double @llvm.fmuladd.f64(double %51, double %53, double %64)
%66 = load double, double* %6
%67 = fsub double %66, 1.000000e+00
%68 = load i32, i32* %4
%69 = sitofp i32 %68 to double
%70 = fneg double %67
%71 = call double @llvm.fmuladd.f64(double %70, double %69, double %65)
store double %71, double* %7
br label %72
72: ; preds = %50, %47
%73 = load i32, i32* %8
%74 = icmp ne i32 %73, 0
br i1 %74, label %75, label %80
75: ; preds = %72
%76 = load double, double* %7
%77 = load i32, i32* %2
%78 = sitofp i32 %77 to double
%79 = fcmp ogt double %76, %78
br label %80
80: ; preds = %75, %72
%81 = phi i1 [ false, %72 ], [ %79, %75 ]
%82 = zext i1 %81 to i32
store i32 %82, i32* %8
%83 = load i32, i32* %8
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %183
85: ; preds = %80
%86 = load i32, i32* %3
%87 = sitofp i32 %86 to double
%88 = load i32, i32* %5
%89 = load i32, i32* %3
%90 = mul nsw i32 %88, %89
%91 = sitofp i32 %90 to double
%92 = call double @llvm.fmuladd.f64(double 2.000000e+02, double %87, double %91)
%93 = load i32, i32* %4
%94 = sitofp i32 %93 to double
%95 = call double @llvm.fmuladd.f64(double -2.000000e+02, double %94, double %92)
%96 = load i32, i32* %3
%97 = sitofp i32 %96 to double
%98 = load i32, i32* %5
%99 = load i32, i32* %3
%100 = mul nsw i32 %98, %99
%101 = sitofp i32 %100 to double
%102 = call double @llvm.fmuladd.f64(double 2.000000e+02, double %97, double %101)
%103 = load i32, i32* %4
%104 = sitofp i32 %103 to double
%105 = call double @llvm.fmuladd.f64(double -2.000000e+02, double %104, double %102)
%106 = call double @pow(double %105, double 2.000000e+00)
%107 = load i32, i32* %5
%108 = sitofp i32 %107 to double
%109 = fmul double 8.000000e+02, %108
%110 = load i32, i32* %3
%111 = sitofp i32 %110 to double
%112 = fmul double %109, %111
%113 = load i32, i32* %2
%114 = load i32, i32* %4
%115 = sub nsw i32 %113, %114
%116 = sitofp i32 %115 to double
%117 = fneg double %112
%118 = call double @llvm.fmuladd.f64(double %117, double %116, double %106)
%119 = call double @sqrt(double %118)
%120 = fadd double %95, %119
%121 = load i32, i32* %5
%122 = sitofp i32 %121 to double
%123 = fmul double 2.000000e+00, %122
%124 = load i32, i32* %3
%125 = sitofp i32 %124 to double
%126 = fmul double %123, %125
%127 = fdiv double %120, %126
%128 = fsub double %127, 0x3EB0C6F7A0B5ED8D
%129 = call double @llvm.floor.f64(double %128)
%130 = fptosi double %129 to i32
store i32 %130, i32* %9
%131 = load i32, i32* %3
%132 = sitofp i32 %131 to double
%133 = load i32, i32* %5
%134 = load i32, i32* %3
%135 = mul nsw i32 %133, %134
%136 = sitofp i32 %135 to double
%137 = call double @llvm.fmuladd.f64(double 2.000000e+02, double %132, double %136)
%138 = load i32, i32* %4
%139 = sitofp i32 %138 to double
%140 = call double @llvm.fmuladd.f64(double -2.000000e+02, double %139, double %137)
%141 = load i32, i32* %3
%142 = sitofp i32 %141 to double
%143 = load i32, i32* %5
%144 = load i32, i32* %3
%145 = mul nsw i32 %143, %144
%146 = sitofp i32 %145 to double
%147 = call double @llvm.fmuladd.f64(double 2.000000e+02, double %142, double %146)
%148 = load i32, i32* %4
%149 = sitofp i32 %148 to double
%150 = call double @llvm.fmuladd.f64(double -2.000000e+02, double %149, double %147)
%151 = call double @pow(double %150, double 2.000000e+00)
%152 = load i32, i32* %5
%153 = sitofp i32 %152 to double
%154 = fmul double 8.000000e+02, %153
%155 = load i32, i32* %3
%156 = sitofp i32 %155 to double
%157 = fmul double %154, %156
%158 = load i32, i32* %2
%159 = load i32, i32* %4
%160 = sub nsw i32 %158, %159
%161 = sitofp i32 %160 to double
%162 = fneg double %157
%163 = call double @llvm.fmuladd.f64(double %162, double %161, double %151)
%164 = call double @sqrt(double %163)
%165 = fsub double %140, %164
%166 = load i32, i32* %5
%167 = sitofp i32 %166 to double
%168 = fmul double 2.000000e+00, %167
%169 = load i32, i32* %3
%170 = sitofp i32 %169 to double
%171 = fmul double %168, %170
%172 = fdiv double %165, %171
%173 = fadd double %172, 0x3EB0C6F7A0B5ED8D
%174 = call double @llvm.ceil.f64(double %173)
%175 = fptosi double %174 to i32
store i32 %175, i32* %10
%176 = load i32, i32* %10
%177 = icmp sgt i32 %176, 0
br i1 %177, label %178, label %180
178: ; preds = %85
%179 = load i32, i32* %10
store i32 %179, i32* %9
br label %180
180: ; preds = %178, %85
%181 = load i32, i32* %9
%182 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1, i64 0, i64 0), i32 %181)
br label %240
183: ; preds = %80
%184 = load i32, i32* %5
%185 = sitofp i32 %184 to double
%186 = fadd double 1.000000e+02, %185
%187 = load i32, i32* %5
%188 = sitofp i32 %187 to double
%189 = fdiv double %186, %188
%190 = call double @llvm.ceil.f64(double %189)
%191 = fptosi double %190 to i32
store i32 %191, i32* %11
%192 = load i32, i32* %3
%193 = load i32, i32* %4
%194 = sub nsw i32 %192, %193
%195 = sitofp i32 %194 to double
%196 = fmul double 2.000000e+02, %195
%197 = load i32, i32* %5
%198 = load i32, i32* %3
%199 = mul nsw i32 %197, %198
%200 = sitofp i32 %199 to double
%201 = fdiv double %196, %200
%202 = fadd double %201, 1.000000e+00
%203 = fadd double %202, 0x3EB0C6F7A0B5ED8D
%204 = call double @llvm.ceil.f64(double %203)
%205 = fptosi double %204 to i32
store i32 %205, i32* %9
%206 = load i32, i32* %11
%207 = sitofp i32 %206 to double
%208 = fmul double 2.000000e+02, %207
%209 = load i32, i32* %3
%210 = sitofp i32 %209 to double
%211 = load i32, i32* %11
%212 = load i32, i32* %11
%213 = sub nsw i32 %212, 1
%214 = mul nsw i32 %211, %213
%215 = load i32, i32* %5
%216 = mul nsw i32 %214, %215
%217 = load i32, i32* %3
%218 = mul nsw i32 %216, %217
%219 = sitofp i32 %218 to double
%220 = fneg double %219
%221 = call double @llvm.fmuladd.f64(double %208, double %210, double %220)
%222 = load i32, i32* %4
%223 = sitofp i32 %222 to double
%224 = fmul double 2.000000e+02, %223
%225 = fdiv double %221, %224
%226 = fadd double %225, 0x3EB0C6F7A0B5ED8D
%227 = call double @llvm.ceil.f64(double %226)
%228 = fptosi double %227 to i32
store i32 %228, i32* %10
%229 = load i32, i32* %9
%230 = icmp sle i32 %229, 0
br i1 %230, label %235, label %231
231: ; preds = %183
%232 = load i32, i32* %9
%233 = load i32, i32* %11
%234 = icmp sge i32 %232, %233
br i1 %234, label %235, label %237
235: ; preds = %231, %183
%236 = load i32, i32* %10
store i32 %236, i32* %9
br label %237
237: ; preds = %235, %231
%238 = load i32, i32* %9
%239 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2, i64 0, i64 0), i32 %238)
br label %240
240: ; preds = %237, %180
br label %12
241: ; preds = %25
ret i32 0
}

LLVM IR (-O2):
@.str = [9 x i8] c"%d%d%d%d\00"
@.str.1 = [19 x i8] c"success on day %d\0A\00"
@.str.2 = [19 x i8] c"failure on day %d\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = bitcast i32* %1 to i8*
%6 = bitcast i32* %2 to i8*
%7 = bitcast i32* %3 to i8*
%8 = bitcast i32* %4 to i8*
%9 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i32* %1, i32* %2, i32* %3, i32* %4)
%10 = load i32, i32* %1
%11 = icmp ne i32 %10, 0
%12 = load i32, i32* %2
%13 = icmp ne i32 %12, 0
%14 = select i1 %11, i1 true, i1 %13
%15 = load i32, i32* %3
%16 = icmp ne i32 %15, 0
%17 = select i1 %14, i1 true, i1 %16
%18 = load i32, i32* %4
%19 = icmp ne i32 %18, 0
%20 = select i1 %17, i1 true, i1 %19
br i1 %20, label %21, label %139
21: ; preds = %0, %126
%22 = phi i32 [ %136, %126 ], [ %18, %0 ]
%23 = phi i32 [ %133, %126 ], [ %15, %0 ]
%24 = phi i32 [ %130, %126 ], [ %12, %0 ]
%25 = phi i32 [ %128, %126 ], [ %10, %0 ]
%26 = sitofp i32 %22 to double
%27 = fadd double %26, 1.000000e+02
%28 = sitofp i32 %24 to double
%29 = sitofp i32 %23 to double
%30 = fmul double %29, -1.000000e+02
%31 = call double @llvm.fmuladd.f64(double %27, double %28, double %30)
%32 = mul i32 %22, %24
%33 = sitofp i32 %32 to double
%34 = fdiv double %31, %33
%35 = call double @llvm.floor.f64(double %34)
%36 = fcmp ugt double %35, 0.000000e+00
br i1 %36, label %37, label %96
37: ; preds = %21
%38 = fmul double %35, %33
%39 = fadd double %35, -1.000000e+00
%40 = fmul double %38, %39
%41 = fdiv double %40, -2.000000e+02
%42 = call double @llvm.fmuladd.f64(double %35, double %28, double %41)
%43 = fneg double %39
%44 = call double @llvm.fmuladd.f64(double %43, double %29, double %42)
%45 = sitofp i32 %25 to double
%46 = fcmp ogt double %44, %45
br i1 %46, label %47, label %96
47: ; preds = %37
%48 = call double @llvm.fmuladd.f64(double %28, double 2.000000e+02, double %33)
%49 = call double @llvm.fmuladd.f64(double %29, double -2.000000e+02, double %48)
%50 = fmul double %49, %49
%51 = sub nsw i32 %25, %23
%52 = sitofp i32 %51 to double
%53 = fmul double %26, -8.000000e+02
%54 = fmul double %53, %28
%55 = call double @llvm.fmuladd.f64(double %54, double %52, double %50)
%56 = call double @sqrt(double %55)
%57 = fadd double %49, %56
%58 = load i32, i32* %4
%59 = sitofp i32 %58 to double
%60 = fmul double %59, 2.000000e+00
%61 = load i32, i32* %2
%62 = sitofp i32 %61 to double
%63 = fmul double %60, %62
%64 = fdiv double %57, %63
%65 = fadd double %64, 0xBEB0C6F7A0B5ED8D
%66 = call double @llvm.floor.f64(double %65)
%67 = fptosi double %66 to i32
%68 = mul nsw i32 %61, %58
%69 = sitofp i32 %68 to double
%70 = call double @llvm.fmuladd.f64(double %62, double 2.000000e+02, double %69)
%71 = load i32, i32* %3
%72 = sitofp i32 %71 to double
%73 = call double @llvm.fmuladd.f64(double %72, double -2.000000e+02, double %70)
%74 = fmul double %73, %73
%75 = load i32, i32* %1
%76 = sub nsw i32 %75, %71
%77 = sitofp i32 %76 to double
%78 = fmul double %59, -8.000000e+02
%79 = fmul double %78, %62
%80 = call double @llvm.fmuladd.f64(double %79, double %77, double %74)
%81 = call double @sqrt(double %80)
%82 = fsub double %73, %81
%83 = load i32, i32* %4
%84 = sitofp i32 %83 to double
%85 = fmul double %84, 2.000000e+00
%86 = load i32, i32* %2
%87 = sitofp i32 %86 to double
%88 = fmul double %85, %87
%89 = fdiv double %82, %88
%90 = fadd double %89, 0x3EB0C6F7A0B5ED8D
%91 = call double @llvm.ceil.f64(double %90)
%92 = fptosi double %91 to i32
%93 = icmp sgt i32 %92, 0
%94 = select i1 %93, i32 %92, i32 %67
%95 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1, i64 0, i64 0), i32 %94)
br label %126
96: ; preds = %21, %37
%97 = fdiv double %27, %26
%98 = call double @llvm.ceil.f64(double %97)
%99 = fptosi double %98 to i32
%100 = sub nsw i32 %24, %23
%101 = sitofp i32 %100 to double
%102 = fmul double %101, 2.000000e+02
%103 = fdiv double %102, %33
%104 = fadd double %103, 1.000000e+00
%105 = fadd double %104, 0x3EB0C6F7A0B5ED8D
%106 = call double @llvm.ceil.f64(double %105)
%107 = fptosi double %106 to i32
%108 = sitofp i32 %99 to double
%109 = fmul double %108, 2.000000e+02
%110 = add nsw i32 %99, -1
%111 = mul i32 %32, %99
%112 = mul i32 %111, %110
%113 = sitofp i32 %112 to double
%114 = fneg double %113
%115 = call double @llvm.fmuladd.f64(double %109, double %28, double %114)
%116 = fmul double %29, 2.000000e+02
%117 = fdiv double %115, %116
%118 = fadd double %117, 0x3EB0C6F7A0B5ED8D
%119 = call double @llvm.ceil.f64(double %118)
%120 = fptosi double %119 to i32
%121 = icmp sgt i32 %107, 0
%122 = icmp slt i32 %107, %99
%123 = select i1 %121, i1 %122, i1 false
%124 = select i1 %123, i32 %107, i32 %120
%125 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2, i64 0, i64 0), i32 %124)
br label %126
126: ; preds = %96, %47
%127 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0), i32* %1, i32* %2, i32* %3, i32* %4)
%128 = load i32, i32* %1
%129 = icmp ne i32 %128, 0
%130 = load i32, i32* %2
%131 = icmp ne i32 %130, 0
%132 = select i1 %129, i1 true, i1 %131
%133 = load i32, i32* %3
%134 = icmp ne i32 %133, 0
%135 = select i1 %132, i1 true, i1 %134
%136 = load i32, i32* %4
%137 = icmp ne i32 %136, 0
%138 = select i1 %135, i1 true, i1 %137
br i1 %138, label %21, label %139
139: ; preds = %126, %0
ret i32 0
}