2 solutions
-
3
#include <bits/stdc++.h> using namespace std; const int N=1e5+10; int a[N]; int main() { int n,m; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++) { int x; cin>>x; int l=1,r=n; while(l<r) { int mid=(l+r)/2; if(a[mid]>=x)r=mid; else l=mid+1; } if(a[l]!=x)cout<<-1<<" "; else cout<<l<<" "; } return 0; }
-
-2
#include<bits/stdc++.h> using namespace std; const int N=1e9+10; int a[N]; int main() { string n,m,i; cin.getline(n); for(i=0;i<n;i++) { cin>>a[i]; } scanf("%f",m); while(m!=0) { int x; cin>>x; int l=n,r=m; while(l!=r) { int mid=l+(r<<1); if(a[m]<=x) r=mid; else l=mid+1; } if(a[n]!=m) printf("%f",1); else { printf("%d",l); } } return 0; }
- 1
Information
- ID
- 138
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 90
- Accepted
- 27
- Uploaded By