PAT 1048

题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1048

水题,升序排序,设置头尾游标i,j  向中间搜索, 复杂度为n

 

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5 
 6 vector<int> v;
 7 
 8 int main(){
 9     int N,M; scanf("%d%d",&N,&M);
10     v.resize(N);
11     for(int i=0; i<N; ++i)
12         scanf("%d", &v[i]);
13     sort(v.begin(), v.end());
14     int i(0),j(N-1);
15     while(i < j){
16         if(v[i]+v[j] == M){
17             printf("%d %d\n", v[i], v[j]);
18             return 0;
19         }
20         else if(v[i]+v[j] < M)
21             ++i;
22         else
23             --j;
24     }
25     printf("No Solution\n");
26     return 0;
27 }

 

posted @ 2013-11-01 18:29  coding_monkey  阅读(191)  评论(0编辑  收藏  举报