怎样做网站外链,专做商铺中介网站,网站开发流程到上线,网站建设工作室wp主题模板/* 四平方和 直接暴力搜索 可能会超时 使用二分辅助搜索 先枚举出 c*cd*d并存入数组 用式子算出 a*ab*b还剩下多少查找sum数组里面是否存在符合条件的数 查找方式使用二分搜索 当逼近答案后 检查一下是否为所需的数 如果是 直接输出 */
#include cstring #includ…
/* 四平方和 直接暴力搜索 可能会超时 使用二分辅助搜索 先枚举出 c*cd*d并存入数组 用式子算出 a*ab*b还剩下多少查找sum数组里面是否存在符合条件的数 查找方式使用二分搜索 当逼近答案后 检查一下是否为所需的数 如果是 直接输出 */
#include cstring #include iostream #include algorithm #include cmath
using namespace std;
const int N 2500010;
struct Sum { int s, c, d; bool operator (const Sum t)const { if (s ! t.s) return s t.s; if (c ! t.c) return c t.c; return d t.d; } }sum[N];
int n, m;
int main() { cin n; for (int c 0; c * c n; c ) for (int d c; c * c d * d n; d ) sum[m ] {c * c d * d, c, d}; // sort(sum, sum m); for (int a 0; a * a n; a ) for (int b 0; a * a b * b n; b ) { int t n - a * a - b * b; int l 0, r m - 1; while (l r) { int mid l r 1; if (sum[mid].s t) r mid; else l mid 1; } if (sum[l].s t) { printf(%d %d %d %d\n, a, b, sum[l].c, sum[l].d); return 0; } } return 0; }