zoj 1760 查找

时间:2022-04-23 21:12:56

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=760

撸了个二分查找

 #include<iostream>
#include<cmath>
#include<iomanip>
#include<algorithm>
using namespace std; int bs(int a[],int n,int len)
{
int lo = ,hi = len-,mid = (lo+hi)/;
while(lo<=hi)
{
if(n<a[mid])
{
hi = mid -;
mid = (lo+hi)/;
}
else if(n>a[mid])
{
lo = mid +;
mid = (lo+hi)/;
}
else
return mid;
}
if(lo>hi)
return -;
} int main()
{
int a[];
int x;
while(cin>>x && x!=-)
{
int i = ;
a[] = x;
while(cin>>a[i])
{
if(a[i]==)
break;
i++;
}
sort(a,a+i);
int count = ;
for(int j = i-;j>=;j--)
{
if(bs(a,a[j]*,i)!=-)
{
count++;
}
}
cout<<count<<endl; }
}