当前位置:   article > 正文

[蓝桥杯 2016 省 AB] 四平方和

[蓝桥杯 2016 省 AB] 四平方和

经典的折磨 经典的乱搞

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long;
  4. #define int long long
  5. const int N = 1e7+10;
  6. const int inf = 0x3f3f3f3f;
  7. const int mod = 1e9+7;
  8. int n,q;
  9. struct Node{
  10. int a,b,s;
  11. bool operator<(const Node&W)const{
  12. if(s!=W.s)return s<W.s;
  13. if(a!=W.a)return a<W.a;
  14. return b<W.b;
  15. }
  16. }node[N];
  17. void solve()
  18. {
  19. int cnt = 0;
  20. cin>>n;
  21. for(int i=0;i*i<=n;++i)
  22. for(int j=i;j*j+i*i<=n;++j)
  23. node[++cnt] = {i,j,i*i+j*j};
  24. sort(node+1,node+1+cnt);
  25. for(int a=0;a*a<=n;a++)
  26. for(int b=0;b*b+a*a<=n;++b)
  27. {
  28. int l = 0,r = cnt;
  29. while(l+1!=r){
  30. int mid = (l+r)/2;
  31. if(node[mid].s<n-a*a-b*b)l = mid;
  32. else r = mid;
  33. }
  34. if(node[r].s==n-a*a-b*b){
  35. cout<<a<<" "<<b<<" "<<node[r].a<<" "<<node[r].b<<"\n";return;
  36. }
  37. }
  38. }
  39. signed main()
  40. {
  41. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  42. int _;
  43. //cin>>_;
  44. _ = 1;
  45. while(_--)solve();
  46. return 0;
  47. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/330016
推荐阅读
相关标签
  

闽ICP备14008679号