RT
代码1:
#include<bits/stdc++.h>
using namespace std;
struct node{
long long xx,yy;
}a[5000005];
bool flag;
long long i,n,m,x,mid,l,r;
bool cmp(node x,node y)
{
return x.xx<y.xx;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){cin>>a[i].xx;a[i].yy=i;}
sort(a+1,a+1+n,cmp);cin>>m;
while(m--)
{
flag=false;cin>>x;
l=1;r=n;
while(l<=r)
{
mid=(l+r)/2;
if(a[mid].xx==x){cout<<a[mid].yy<<endl;flag=true;break;}
if(x<a[mid].xx) r=mid-1;
else l=mid+1;
}
if(!flag) cout<<0<<endl;
}
return 0;
}
代码2:
#include<bits/stdc++.h>
using namespace std;
struct node
{
long long xx,yy;
} a[5000005];
bool flag;
long long i,n,m,x,mid;
bool cmp(node x,node y)
{
return x.xx<y.xx;
}
void search(long long l,long long r)
{
if(l>r)
{
cout<<0<<endl;
return;
}
if(flag) return;
mid=(l+r)/2;
if(a[mid].xx==x)
{
cout<<a[mid].yy<<endl;
flag=true;
return;
}
if(a[mid].xx<x) search(mid+1,r);
if(a[mid].xx>x) search(l,mid-1);
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a[i].xx;
a[i].yy=i;
}
sort(a+1,a+n+1,cmp);
cin>>m;
while(m--)
{
flag=false;
cin>>x;
search(1,n);
}
return 0;
}
我觉得两份代码基本上没有区别啊,但是评测出来却是第1份100,第2份10分,求问各位有什么两份代码区别啊qwq