蒟蒻的二分代码。。。。。。
#include<bits/stdc++.h>
using namespace std;
int main()
{
iostream::sync_with_stdio(false);
int n;
cin>>n;
int a[n],b[n],c[n];
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
b[i]=a[i];
int m;
cin>>m;
int q[m],ans[m];
for(int j=0;j<m;j++)
cin>>q[j];
sort(a,a+n);
for(int j=0;j<m;j++)
{
int l=0,r=n-1,flag=0;
while(l<=r)
{
int mid=(l+r)/2;
if(a[mid]>q[j])
{
r=mid-1;
}
if(a[mid]<q[j])
{
l=mid+1;
}
if(a[mid]==q[j])
{
flag=1;
for(int i=0;i<n;i++)
{
if(b[i]==a[mid])
{
ans[j]=i+1;
break;
}
}
break;
}
}
if(flag==0)
{
ans[j]=0;
}
}
for(int i=0;i<m;i++)
{
cout<<ans[i]<<endl;
}
return 0;
}
求大佬优化一下(开O2,TLE了2个点)谢谢!