CF-395A1 Skis (two pointer)

来源:互联网 发布:mysql 1054错误 编辑:程序博客网 时间:2024/06/05 01:20

先对无序序列排序,一个正方向移动,一个从逆方向移动。时间复杂度竟为O(n)。

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std ;int a[1000005];int main(){int n,q,l,r,ans;    while(scanf("%d %d",&n,&q)!=EOF){for(int i=0;i<n;i++) scanf("%d",&a[i]);sort(a,a+n);l=0,r=n-1;ans=0;while(l<r){while(a[l]+a[r]>q&&r>l) r--;if(a[l]+a[r]==q&&(l!=r)){r--;ans++;}l++;}printf("%d\n",ans);    } return 0 ;}

0 0
原创粉丝点击