1048. Find Coins (25)

来源:互联网 发布:淘宝的特色服务有哪些 编辑:程序博客网 时间:2024/05/17 03:29

1048. Find Coins (25)

#include <stdio.h>#include <algorithm>using namespace std;class CA{public:enum{N=100000};int face[N],n,amount;int findpaircoin(int l,int r,int k);void run();};int CA::findpaircoin(int l,int r,int k){int i,j,mid;i=l;j=r;while(i<=j){mid=(i+j)/2;if(face[k]+face[mid]>amount){j=mid-1;}else if(face[k]+face[mid]<amount){i=mid+1;}else{return mid;} }return -1;}void CA::run(){scanf("%d%d",&n,&amount);if(n<2) {printf("No Solution\n");return;}int i;for(i=0;i<n;i++){scanf("%d",face+i);}sort(face,face+n);int k;for(i=0;i<n-1;i++){if(face[i]+face[i+1]>amount) {printf("No Solution\n");break;}else{k=findpaircoin(i+1,n-1,i);if(k>0){printf("%d %d\n",face[i],face[k]);break;}}}}int main(){//freopen("test.in","r",stdin);CA *a=new CA;a->run();return 0;}