社区讨论
求调第一个点WA(有调必关,我是舟P)
P2249【深基13.例1】查找参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mbu4ock7
- 此快照首次捕获于
- 2025/06/13 09:27 9 个月前
- 此快照最后确认于
- 2025/11/04 07:13 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,k,o,l,r;
int a[1000001],c[1000001],b[100001];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=m;i++)
cin>>b[i];
for(int i=1;i<=n;i++){
k++;
if(a[i]!=a[i-1])
o=k;
c[i]=o;
}
for(int i=1;i<=m;i++){
l=1;
r=n;
while(l<r){
if(abs(l-r)<=1){
cout<<"-1 ";
break;
}
if(a[(l+r)/2]>b[i])
r=(l+r)/2;
else if(a[(l+r)/2]<b[i])
l=(l+r)/2;
else if(a[(l+r)/2]==b[i]){
cout<<c[(l+r)/2]<<" ";
break;
}
else{
cout<<"-1 ";
break;
}
}
}
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...