1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int a[100001]; int n,z; int s1(int left,int right,int x) { if(left>right) { if(left>n or a[left]!=x) return -1; else return left; } int mid=(left+right)/2; if(a[mid]>x) return s1(left,mid-1,x); else if(a[mid]<x) return s1(mid+1,right,x); else return s1(left,mid-1,x); //1 2 2 4 5 2 } int s(int left,int right,int x) { if(left>right) { if(right<0 or a[right]!=x) return -1; else return right; } int mid=(left+right)/2; if(a[mid]>x) return s(left,mid-1,x); else if(a[mid]<x) return s(mid+1,right,x); else return s(mid+1,right,x); } int main() { int k; cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=k;i++){ int j; cin>>j; cout<<s1(1,n,j)<<" "; cout<<s(1,n,j)<<" "; cout<<endl; } }
- 1
信息
- ID
- 2050
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者