写了个二分,结果re了? 测试点明明运行的好好地。。。。。。。
Code:
#include<bits/stdc++.h>
#define ll long long
#define gc() getchar()
#define ull unsigned long long
#define IL inline
#define Re register
using namespace std;
int re() {
int ret=0,f=1;
char ch=getchar();
while(ch>'9'||ch<'0') {
if(ch=='-')f=-f;
ch=getchar();
}
while(ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
int t;
int n,m;
int a[10001];
int search() {
int l=1;
int r=n;
while(l<=r) {
int mid=(l+r)/2;
if(a[mid]>t) {
r=mid-1;
}
if(a[mid]<t) {
l=mid+1;
}
if(a[mid]==t) {
while(a[mid-1]==a[mid]&&a[mid]!=0)
{
mid--;
}
return mid;
}
}
return -1;
}
int main() {
cin>>n>>m;
for(int i=1; i<=n; i++)cin>>a[i];
for(int i=1; i<=m; i++) {
t=re();
cout<<search()<<" ";
}
return 0;
}
请大佬援助!