9. 两个立方体
XJOI - 题目ID:8588必做题100分
最新提交:
Time Limit Exceeded
0 分
历史最高:
Time Limit Exceeded
0 分
时间限制: 1000ms
空间限制: 524288kB
题目描述
时间:1s 空间:256M
题目描述
大哈和小哈在玩游戏,大哈给出一个x,他问小哈能否有两个边长为整数的立方体的体积之和恰好等于x。小哈成天只会阿巴阿巴,他只能把希望寄托在大佬你的身上了。
输入格式
第一行输入一个t,代表有t组输入
第二行有一个x,代表大哈的询问
输出格式
每次询问给出一个“YES”或“NO”的回答
样例输入
7 1 2 4 34 35 16 703657519796
样例输出
NO YES NO NO YES YES YES
约定
1 <=� <=100 1 <=t <=100
1 <=� <=1012 1 <=x <=1012
代码:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int t;
cin>>t;
bool f;
long long x;
while(t--){
cin>>x;
f=false;
for(int i=1;i*i*i<x;i++){
long long y=x-i*i*i;
long long l=1,r=y;
while(l<r){
long long mid=(l+r+1)/2;
if(mid*mid*mid>y){
r=mid-1;
}
else if(mid*mid*mid<y){
l=mid;
}
else{
l=mid;
break;
}
}
if(l*l*l==y){
cout<<"Yes"<<endl;
f=1;
break;
}
}
if(!f){
cout<<"No"<<endl;
}
}
return 0;
}
