AcWing 1532. 找硬币
原题链接
简单
作者:
fancywing
,
2021-01-19 09:42:00
,
所有人可见
,
阅读 164
排序后,使用双指针解决
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010, M = 1010;
int n, m, a[N];
int main(){
cin>>n>>m;
bool isFound;
for(int i = 1; i <= n; i++) cin >> a[i];
sort(a+1, a+n+1);
for(int i = 1, j = n; i < j;){
if(a[i] + a[j] > m) j--;
else if(a[i] + a[j] < m) i++;
else{
isFound = true;
cout<<a[i]<<" "<<a[j]<<endl;
break;
}
}
if(!isFound) cout<<"No Solution"<<endl;
return 0;
}