Problem:
Score : 300 points

Problem Statement

You are given an integer N.

Find a triple of positive integers h, n and w such that 4/N = 1/h + 1/n + 1/w.

If there are multiple solutions, any of them will be accepted.

Constraints

It is guaranteed that, for the given integer N, there exists a solution such that h,n,w \leq 3500.

Inputs

Input is given from Standard Input in the following format:

N

Outputs

Print a triple of positive integers h, n and w that satisfies the condition, in the following format:

h n w

Sample Input 1

2

Sample Output 1

1 2 2

4/2 = 1/1 + 1/2 + 1/2.

Sample Input 2

3485

Sample Output 2

872 1012974 1539173474040

It is allowed to use an integer exceeding 3500 in a solution.

Sample Input 3

4664

Sample Output 3

3498 3498 3498

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define F first
#define S second

ld eps = 0.0000000000001;
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	int N;
	cin >> N;
	int h, n, w;
	for(h = 1 ; h <= 3500 ; h++){
        for(n = 1 ; n <= 3500 ; n++){
            //cout << h << " " << n << " " << 4.0 / (ld)N - 1.0 / (ld)h - 1.0 / (ld)n << '\n';
            if(abs(4.0 / (ld)N - 1.0 / (ld)h - 1.0 / (ld)n) < eps) continue;
            int w = 1.0 / (4.0 / (ld)N - 1.0 / (ld)h - 1.0 / (ld)n);
            if(w < 0 || w > 3500) continue;
            if(4LL * h * n * w == N * (ll)(h * n + h * w + n * w)){
                return cout << h << " " << n << " " << w, 0;
            }
        }
	}

    return 0;
}