貌似这道题需要用二分 但是我直接暴力也过了 刚开始超时 后来我把标志变量改成了bool 并且加上了小数据重新循环的限制条件就过了 自己也是挺
#include <queue>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <cmath>
#include<algorithm>
using namespace std;
int main(){
int num,n;
while(cin>>num>>n){
bool temp=false;
int Array[n];
for(int i = 0 ;i < n;i++){
cin>>Array[i];
}
sort(Array,Array+n);
for(int i = 0; i < n ;i++)
{
if(Array[i]+Array[n-1]<num)
continue;
for(int j = i+1;j < n&&Array[i]+Array[j]<=num;j++)
{
if(Array[i]+Array[j]==num)
{
temp=true;
cout<<Array[i]<<" "<<Array[j]<<endl;
}
}
}
if(!temp)
cout<<"No Solution"<<endl;
}
return 0;
}