题干:

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

256

Output

YES

Input

512

Output

NO

Note

In the first sample number .

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

题目大意:

给你一个数字N,问你是否存在两个数字A,B使得N=A(A+1)2+B(B+1)2N=A(A+1)2+B(B+1)2

解题报告:

优秀的二分,复杂度sqrtnlogn

#include<bits/stdc++.h>using namespace std;int main()
{int n;cin>>n;int tmp,key;int l ,r,mid;n*=2;for(int i = 1; i<=sqrt(n); i++) {tmp = i * (i+1);key = n-tmp;l = i;r = sqrt(n);while(l<=r) {mid = (l+r)/2;if(mid * (mid+1) < key) l=mid+1;else if(mid*(mid+1)>key) r = mid-1;else {printf("YES\n");return 0 ;}}}printf("NO\n");return 0 ;
}

【CF#192 A】Funky Numbers (二分,查找,二元组)相关推荐

  1. [二分查找] 二:二分查找的经典例题

    1.何时应该会使用二分查找 当题目中出现有序数组时 当时间复杂度要求为log(n)时 搜索范围可以一次缩小一半时 2. 经典例题1 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果 ...

  2. 二分查找与二叉排序树

    文章目录 二分查找与二叉排序树 二分查找 1. 二分查找 2. 区间查找 3. 基于旋转数组的二分查找 二叉查找(排序)树 1. 插入节点 2. 查找节点 二分查找与二叉排序树 二分查找 1. 二分查 ...

  3. LeetCode算法题4:二分查找及扩展应用

    文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...

  4. 数据结构与算法--6.二分查找

    文章目录 一. 二分查找 二. 代码实现一:使用递归 三. 代码实现二:非递归 一. 二分查找 二. 代码实现一:使用递归 def binary_search(alist, item):"& ...

  5. 二十一、二分查找算法(递归非递归)

    一.二分查找思路分析 1.首先确定该数组中间的下标 ,即mid=(left+high)/2; 2.然后让需要查找的value值与array[mid]值进行比较 2.1)findVal > arr ...

  6. 数据结构算法(二)_算法基础之前传(递归、时间复杂度、空间复杂度、二分查找)...

    什么是算法: 间而言之算法(Algorithm):一个计算过程,解决问题的方法 递归的两个特点: 调用自身 结束条件 递归示例: def func(x):if x==0:print("我的小 ...

  7. 树形结构:从二分查找,二叉搜索树寻找最近祖先,从递归到迭代,实现技巧总结

    二分查找,二叉搜索树寻找最近祖先均是典型分治问题,把原问题分成三部分考虑,递归实现简单,迭代实现也比较简单,里面蕴含了一些从从递归到迭代的技巧,注意这里没有使用模拟栈技术. 深究其原因是,这一类型的递 ...

  8. leetcode74. 搜索二维矩阵(二分查找)

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: matrix ...

  9. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  10. 二分查找 —— 从三分支到二分支

    二分查找,三分支向二分支的转变,降低的是时间复杂度的常系数. 1. 三分支版本 template <typename T> Rank binSearch(T *A, T const& ...

最新文章

  1. linux下redis安装配置及redis常用命令(实战详细版)
  2. 开源优势_企业开源的10大优势
  3. 【总结】6种机器学习中的优化算法:SGD,牛顿法,SGD-M,AdaGrad,AdaDelta,Adam
  4. 为flash游戏终极实用提速
  5. Eclipse 启动提示java虚拟机启动失败,“Failed to create the Java Virtual Machine”-------解决方法
  6. 怎么给边框添加图片 css3,用CSS3轻松实现图片边框
  7. TYUT太原理工大学2022需求工程考试填空题
  8. GSM和GPRS有什么区别
  9. 已解决-Mounty 挂载NTFS报错:卷“BOOTCAMP“不可重新挂载
  10. Hyperledger Fabric之Explorer区块链浏览器
  11. 制作统一样式的H5视频播放器
  12. 力扣1438.绝对差不超过限制——python
  13. Nginx 同时运行多个服务
  14. PyTorch开发者福音, OpenVINO整合PyTorch实现推理加速!
  15. 华为国产系统Android,国产手机系统即将出现!华为将抛弃安卓:成功研发自有手机系统...
  16. Springboot毕设项目博物馆参观预约管理系统gkb2s(java+VUE+Mybatis+Maven+Mysql)
  17. kmeans以及kmeans++聚类生成anchors
  18. Hutool-crypto加密工具
  19. 补码、反码、原码介绍以及相互转换
  20. 《诛仙》大量实景拍摄 程小东导演:演员状态自然

热门文章

  1. [Leetcode][第93题][JAVA][复原IP地址][剪枝][回溯]
  2. 【数据结构与算法】数组与链表
  3. [Leedcode][JAVA][第289题][生命游戏]
  4. kingbase自带的驱动在哪_德国制造到底强在哪?从工博会上伺服驱动的创新上能看出真相!...
  5. 1-3 交换变量(算法竞赛入门经典)
  6. C语言#define宏定义可能注意不到的地方
  7. css没有border,你未必知道的CSS小知识:为什么没有人使用border-image
  8. 谷歌翻译无法连接网络_window10无法连接网络
  9. E. Anfisa the Monkey
  10. mysql导出表_mysql导出表的3种方式