5 条题解
-
2
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int a[maxn],n,m,q; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m; for(int i=1;i<=m;i++){ cin>>q; int ans=upper_bound(a+1,a+n+1,q)-a; if(q!=a[ans-1]) cout<<"-1"<<" "; else cout<<ans-1<<" "; } return 0; }
-
2
#include<bits/stdc++.h> using namespace std; const int maxn=1000; int a[maxn],n,s,m; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++){ cin>>s; int ans=upper_bound(a+1,a+n+1,s)-a-1; if(s==a[ans]){ cout<<ans<<" "; } else cout<<"-1"<<" "; } return 0; }
-
2
```#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int a[maxn],n,m,q; int find(int x){ int l=1,r=n; while(l<r){ int mid=(l+r+1)/2; if(a[mid]<=x){ l=mid; } else r=mid-1; } if(a[l]==x) return l; else return -1; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) cin>>a[i]; scanf("%d",&m); for(int i=1;i<=m;i++){ cin>>q; int ans=find(q); printf("%d ",ans); } }
-
1
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int a[maxn],n,m,q; int find(int x){ int l=1,r=n; while(l<r){ int mid=(l+r+1)/2; if(a[mid]<=x){ l=mid; } else r=mid-1; } if(a[l]==x) return l; else return -1; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) cin>>a[i]; scanf("%d",&m); for(int i=1;i<=m;i++){ cin>>q; int ans=find(q); printf("%d ",ans); } }
-
0
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int a[maxn],n,m,q; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++){ cin>>q; int ans=upper_bound(a+1,a+n+1,q)-a; if(q!=a[ans-1]) { cout<<"-1"<<" "; }else{ cout<<ans-1<<" "; }
} return 0;
}
- 1
信息
- ID
- 1147
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 5
- 标签
- 递交数
- 236
- 已通过
- 88
- 上传者