   Program ABC159C
   implicit none
   integer::L,i,j
   real(8)::Vmax=0,xmax,ymax,zmax,x,y,z,V

      read *,L
      do i=1,100
         x=real(L)/100.0*real(i)
         do j=1,100
            y=(real(L)-x)/100.0*real(j)
            z=real(L)-x-y
            V=x*y*z
            if (V>Vmax) then
               Vmax=V
               xmax=x
               ymax=y
               zmax=z
            end if
         end do
      end do

      do i=-50,50
         x=xmax+real(L)/10000.0*real(i)
         do j=-50,50
            y=ymax+real(L)/10000.0*real(j)
            z=real(L)-x-y
            V=x*y*z
            if (V>Vmax) then
               Vmax=V
            end if
         end do
      end do

      print *,Vmax
      stop

   End Program ABC159C
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEvmax = internal unnamed_addr global double 0.000000e+00
@_QQcl.e498adb2d2b0ad31a1af865055a494f4 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_2053/source.f\00"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: noreturn
define void @_QQmain() local_unnamed_addr #0 {
  %1 = alloca i32, align 4
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.e498adb2d2b0ad31a1af865055a494f4, i32 6)
  %3 = call i1 @_FortranAioInputInteger(ptr %2, ptr nonnull %1, i32 4)
  %4 = call i32 @_FortranAioEndIoStatement(ptr %2)
  %5 = load i32, ptr %1, align 4, !tbaa !3
  %6 = sitofp i32 %5 to float
  %7 = fdiv contract float %6, 1.000000e+02
  %8 = fpext float %6 to double
  %_QFEvmax.promoted38 = load double, ptr @_QFEvmax, align 8, !tbaa !3
  br label %10

.preheader:                                       ; preds = %52
  %9 = fdiv contract float %6, 1.000000e+04
  br label %55

10:                                               ; preds = %0, %52
  %11 = phi i64 [ 100, %0 ], [ %54, %52 ]
  %12 = phi i32 [ 1, %0 ], [ %53, %52 ]
  %.044 = phi double [ undef, %0 ], [ %.2.1, %52 ]
  %.02743 = phi double [ undef, %0 ], [ %.229.1, %52 ]
  %_QFEvmax.promoted4142 = phi double [ %_QFEvmax.promoted38, %0 ], [ %_QFEvmax.promoted45.1, %52 ]
  %13 = sitofp i32 %12 to float
  %14 = fmul contract float %7, %13
  %15 = fpext float %14 to double
  %16 = fsub contract double %8, %15
  %17 = fdiv contract double %16, 1.000000e+02
  br label %18

18:                                               ; preds = %49, %10
  %_QFEvmax.promoted40 = phi double [ %_QFEvmax.promoted4142, %10 ], [ %_QFEvmax.promoted45.1, %49 ]
  %19 = phi i64 [ 100, %10 ], [ %51, %49 ]
  %20 = phi i32 [ 1, %10 ], [ %50, %49 ]
  %.137 = phi double [ %.044, %10 ], [ %.2.1, %49 ]
  %.12836 = phi double [ %.02743, %10 ], [ %.229.1, %49 ]
  %21 = phi double [ %_QFEvmax.promoted4142, %10 ], [ %42, %49 ]
  %22 = sitofp i32 %20 to float
  %23 = fpext float %22 to double
  %24 = fmul contract double %17, %23
  %25 = fsub contract double %16, %24
  %26 = fmul contract double %24, %15
  %27 = fmul contract double %26, %25
  %28 = fcmp ogt double %27, %21
  br i1 %28, label %29, label %30

29:                                               ; preds = %18
  br label %30

30:                                               ; preds = %29, %18
  %_QFEvmax.promoted45 = phi double [ %27, %29 ], [ %_QFEvmax.promoted40, %18 ]
  %31 = phi double [ %27, %29 ], [ %21, %18 ]
  %.229 = phi double [ %15, %29 ], [ %.12836, %18 ]
  %.2 = phi double [ %24, %29 ], [ %.137, %18 ]
  %32 = add nuw nsw i32 %20, 1
  %33 = sitofp i32 %32 to float
  %34 = fpext float %33 to double
  %35 = fmul contract double %17, %34
  %36 = fsub contract double %16, %35
  %37 = fmul contract double %35, %15
  %38 = fmul contract double %37, %36
  %39 = fcmp ogt double %38, %31
  br i1 %39, label %40, label %41

40:                                               ; preds = %30
  br label %41

41:                                               ; preds = %40, %30
  %_QFEvmax.promoted45.1 = phi double [ %38, %40 ], [ %_QFEvmax.promoted45, %30 ]
  %42 = phi double [ %38, %40 ], [ %31, %30 ]
  %.229.1 = phi double [ %15, %40 ], [ %.229, %30 ]
  %.2.1 = phi double [ %35, %40 ], [ %.2, %30 ]
  %43 = xor i1 %28, true
  %44 = xor i1 %39, true
  %45 = xor i1 %43, true
  %46 = xor i1 %44, true
  %47 = or i1 %45, %46
  br i1 %47, label %48, label %49

48:                                               ; preds = %41
  store double %_QFEvmax.promoted45.1, ptr @_QFEvmax, align 8, !tbaa !3
  br label %49

49:                                               ; preds = %41, %48
  %50 = add nuw nsw i32 %20, 2
  %51 = add nsw i64 %19, -2
  %.not51 = icmp eq i64 %19, 2
  br i1 %.not51, label %52, label %18

52:                                               ; preds = %49
  %53 = add nuw nsw i32 %12, 1
  %54 = add nsw i64 %11, -1
  %.not = icmp eq i64 %54, 0
  br i1 %.not, label %.preheader, label %10

55:                                               ; preds = %.preheader, %94
  %56 = phi i64 [ 101, %.preheader ], [ %96, %94 ]
  %57 = phi i32 [ -50, %.preheader ], [ %95, %94 ]
  %_QFEvmax.promoted4849 = phi double [ %_QFEvmax.promoted45.1, %.preheader ], [ %_QFEvmax.promoted46, %94 ]
  %58 = sitofp i32 %57 to float
  %59 = fmul contract float %9, %58
  %60 = fpext float %59 to double
  %61 = fadd contract double %.229.1, %60
  %62 = fsub contract double %8, %61
  br label %63

63:                                               ; preds = %90, %55
  %_QFEvmax.promoted47 = phi double [ %_QFEvmax.promoted4849, %55 ], [ %_QFEvmax.promoted46.1, %90 ]
  %64 = phi i64 [ 101, %55 ], [ %93, %90 ]
  %65 = phi i32 [ -50, %55 ], [ %92, %90 ]
  %66 = phi double [ %_QFEvmax.promoted4849, %55 ], [ %91, %90 ]
  %67 = sitofp i32 %65 to float
  %68 = fmul contract float %9, %67
  %69 = fpext float %68 to double
  %70 = fadd contract double %.2.1, %69
  %71 = fsub contract double %62, %70
  %72 = fmul contract double %61, %70
  %73 = fmul contract double %72, %71
  %74 = fcmp ogt double %73, %66
  br i1 %74, label %75, label %76

75:                                               ; preds = %63
  store double %73, ptr @_QFEvmax, align 8, !tbaa !3
  br label %76

76:                                               ; preds = %75, %63
  %_QFEvmax.promoted46 = phi double [ %73, %75 ], [ %_QFEvmax.promoted47, %63 ]
  %77 = phi double [ %73, %75 ], [ %66, %63 ]
  %78 = icmp ugt i64 %64, 1
  br i1 %78, label %79, label %94

79:                                               ; preds = %76
  %80 = or i32 %65, 1
  %81 = sitofp i32 %80 to float
  %82 = fmul contract float %9, %81
  %83 = fpext float %82 to double
  %84 = fadd contract double %.2.1, %83
  %85 = fsub contract double %62, %84
  %86 = fmul contract double %61, %84
  %87 = fmul contract double %86, %85
  %88 = fcmp ogt double %87, %77
  br i1 %88, label %89, label %90

89:                                               ; preds = %79
  store double %87, ptr @_QFEvmax, align 8, !tbaa !3
  br label %90

90:                                               ; preds = %89, %79
  %_QFEvmax.promoted46.1 = phi double [ %87, %89 ], [ %_QFEvmax.promoted46, %79 ]
  %91 = phi double [ %87, %89 ], [ %77, %79 ]
  %92 = add nsw i32 %65, 2
  %93 = add nsw i64 %64, -2
  br label %63

94:                                               ; preds = %76
  %95 = add nsw i32 %57, 1
  %96 = add nsw i64 %56, -1
  %.not50 = icmp eq i64 %96, 0
  br i1 %.not50, label %97, label %55

97:                                               ; preds = %94
  %98 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.e498adb2d2b0ad31a1af865055a494f4, i32 34)
  %99 = load double, ptr @_QFEvmax, align 8, !tbaa !3
  %100 = call i1 @_FortranAioOutputReal64(ptr %98, double %99)
  %101 = call i32 @_FortranAioEndIoStatement(ptr %98)
  %102 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare ptr @_FortranAioBeginExternalListOutput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputReal64(ptr, double) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

attributes #0 = { noreturn }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
