Algorithm


A. Funky Numbers
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

As you very well know, this year's funkiest numbers are so called triangular numbers (that is, integers that are representable as , where k is some positive integer), and the coolest numbers are those that are representable as a sum of two triangular numbers.

A well-known hipster Andrew adores everything funky and cool but unfortunately, he isn't good at maths. Given number n, help him define whether this number can be represented by a sum of two triangular numbers (not necessarily different)!

Input

The first input line contains an integer n (1 ≤ n ≤ 109).

Output

Print "YES" (without the quotes), if n can be represented as a sum of two triangular numbers, otherwise print "NO" (without the quotes).

Examples
input
Copy
256
output
Copy
YES
input
Copy
512
output
Copy
NO
Note

In the first sample number .

In the second sample number 512 can not be represented as a sum of two triangular numbers.



 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming

#include <bits/stdc++.h>

using namespace std;

int const N = 1e5 + 1;
int n;
set<long long> st;

int main() {
  scanf("%d", &n);

  for(int i = 1; i < N; ++i)
    st.insert(1ll * i * (i + 1) / 2);
  
  for(set<long long>::iterator it = st.begin(); it != st.end(); ++it) {
    if(n - (*it)> 0 && st.count(n - (*it))) {
      puts("YES");
      return 0;
    }
  }

  puts("NO");

  return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
256

Output

x
+
cmd
YES
Advertisements

Demonstration


Codeforcess Solution Funky Numbers, A. Funky Numbers ,C,C++, Java, Js and Python ,Funky Numbers,Codeforcess Solution

Previous
Codeforces solution 1080-B-B. Margarite and the best present codeforces solution
Next
CodeChef solution DETSCORE - Determine the Score CodeChef solution C,C+