AcWing 1221. 四平方和
原题链接
简单
作者:
糖醋拐杖_8
,
2023-11-13 17:41:21
,
所有人可见
,
阅读 44
#include<bits/stdc++.h>
using namespace std;
const int N = 5e6 + 10;
int c[N], d[N];
int n;
int main()
{
cin >> n;
memset(c, -1, sizeof c);
memset(d, -1, sizeof d);
for (int i = 0;i * i <= n;i++)
{
for (int j = i;j * j + i * i <= n;j++)
{
int t = j * j + i * i;
if (c[t] == -1) c[t] = i;
if (d[t] == -1) d[t] = j;
}
}
for (int i = 0;i * i < n;i++)
{
for (int j = i;j * j + i * i < n;j++)
{
int t = n - (j * j + i * i);
if (c[t] != -1)
{
cout << i << " " << j << " " << c[t] << " "<< d[t] << endl;
return 0;
}
}
}
return 0;
}
模拟哈希