题目描述
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int a,b,c,d;
int n;
int main (){
scanf ("%d",&n);
for(int a=0;(a*a<<3)<=n;a++)
for(int b=a;(b*b<<2)<=n-a*a;b++)
for(int c=b;(c*c<<1)<=n-a*a-b*b;c++){
int d = (int)sqrt(n-a*a-b*b-c*c);
if(a*a+b*b+c*c+d*d==n) {
printf ("%d %d %d %d\n",a,b,c,d);
return 0;
}
}
return 0;
}
把头文件换成一个万能头,就能稳定AC了
有点看不懂这个右移,
还有就是这个算法不太稳定,多次提交有的tle,有的ac