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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <bits/stdc++.h>
using namespace std;
 
#define F(i,a,b) for(long long  i =a; i<b; i++)
#define rF(i,a,b) for(long long i=a-1; i>=b;i--)
#define endl "\n"
#define min1(x,y,z) min(x, min(y,z))
#define max1(x,y,z) max(x, max(y,z))
#define input_vector(v,n,type) vector<type> v;for(int i=0;i<n;i++){type x;cin>>x;v.push_back(x);}
#define IOS ios_base::sync_with_stdio(false);  cin.tie(NULL);  cout.tie(NULL);
#define int long long
#define inf (1LL<<61)
typedef pair<int,int> ii;
typedef vector<pair<int,int>> vii;
typedef vector<int> vi;
 
 
 
int32_t main()
{
        IOS;

        int L;
        cin>>L;

        if (L == 1) {
                double ans = (double)1/(double)27;
                cout<<fixed<<setprecision(10)<<ans<<endl;
                return 0;
        }
        if (L == 2) {
                double ans = (double)8/(double)27;
                cout<<fixed<<setprecision(10)<<ans<<endl;
                return 0;
        }
        if (true) {
                double x = (double)L/(double)3;
                double ans = x*x*x;
                cout<<fixed<<setprecision(10)<<ans<<endl;
        } else if (L%3 == 1) {
                double ans = (L/3*(L+1)/3*L/3);
                cout<<fixed<<setprecision(10)<<ans<<endl;
        } else {
                double ans = (L/3*(L+1)/3*(L+1)/3);
                cout<<fixed<<setprecision(10)<<ans<<endl;
        }
        





        
 
 
 
            
 
 
 
      
 
 
        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        return 0;
}