Problem:
Score : 300 points

Problem Statement

Given is a positive integer L.
Find the maximum possible volume of a rectangular cuboid whose sum of the dimensions (not necessarily integers) is L.

Constraints

1 ≤ L ≤ 1000

L is an integer.

Input

Input is given from Standard Input in the following format:

L

Output

Print the maximum possible volume of a rectangular cuboid whose sum of the dimensions (not necessarily integers) is L.
Your output is considered correct if its absolute or relative error from our answer is at most 10^{-6}.

Sample Input 1

3

Sample Output 1

1.000000000000

For example, a rectangular cuboid whose dimensions are 0.8, 1, and 1.2 has a volume of 0.96.

On the other hand, if the dimensions are 1, 1, and 1, the volume of the rectangular cuboid is 1, which is greater.

Sample Input 2

999

Sample Output 2

36926037.000000000000

Solution in Rust (1.15.1) (judge verdict: Accepted)

#![allow(unused_imports)]
#![allow(non_snake_case)]
use std::io::Read;
use std::io::{stdout, BufWriter, Write};

fn is_kaibun(a: &str) -> bool {
    //println!("{:?}",a);
    let a : Vec<char> = a.chars().collect();
    let length : usize = a.len();
    (0..length/2).map(|i| {
        //println!("{:?}",a[i] == a[length-1-i]);
        a[i] == a[length-1-i]
    }).fold(true, |sum, i| sum && i)
}

fn check_kaibun(a: &str) -> bool {
    if is_kaibun(a) == false {return false}
    let len = a.len();
    if ( is_kaibun(&a[..(len-1)/2]) == false || is_kaibun(&a[(len+3)/2-1..]) == false) {return false}
    return true
}
 
fn main() {
    let mut buf = String::new();
    
    let out = stdout();
    let mut out = BufWriter::new(out.lock());
 
    // 標準入力から全部bufに読み込む
    std::io::stdin().read_to_string(&mut buf).unwrap();
 
    // 読み込んだStringを空白で分解する
    let mut iter = buf.split_whitespace();
 
    let l: f64 = iter.next().unwrap().parse().unwrap();
    
    println!("{:?}", l * l * l / 27.);
    
}