点击打开链接
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
int num[50005];
int main()
{
ll n,k;
cin>>n>>k;
for (int i=1;i<=k;i++)
{
cin>>num[i];
}
sort(num+1,num+k+1);
bool flag=true;
ll i=1,j=k;
while(i<j)
{
if (num[i]+num[j]==n)
{
flag=false;
cout<<num[i++]<<" "<<num[j--]<<endl;
}
else if (num[i]+num[j]<n)
i++;
else
j--;
}
if (flag==true)
cout<<"No Solution"<<endl;
return 0;
}
点击打开链接
#include <iostream>
#include <cmath>
#include<algorithm>
using namespace std;
int main()
{
long long n;
cin>>n;
int i=0,j=sqrt(n),len=sqrt(n/2);
bool flag=true;
while (i<j)
{
if ((i*i+j*j)==n)
{
flag=false;
cout<<i<<" "<<j<<endl;
i++;j--;
}
else if ((i*i+j*j)<n)
i++;
else
j--;
}
if (2*(len*len)==n)
{
flag=false;
cout<<len<<" "<<len<<endl;
}
if (flag)
cout<<"No Solution"<<endl;
return 0;
}