求改,玄关
  • 板块学术版
  • 楼主lzm13933871057
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/2/7 15:35
  • 上次更新2025/2/7 17:36:43
查看原帖
求改,玄关
1499401
lzm13933871057楼主2025/2/7 15:35

p2249

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[10000100],g[100100],ans[100100];
int main(){
	scanf("%lld%lld",&n,&m);
	for(ll i=1;i<=n;i++){
		scanf("%lld%lld",&a[i]);
	}
	for(ll i=1;i<=m;i++){
		scanf("%lld",&g[i]);
	}
	ll q=1;
	for(ll i=1;i<=m;i++){
		ll mid=m/2,l,r;
		if(a[mid]>g[i]){
			l=1;
			for(ll j=1;j<=mid-1;j++){
				if(a[l]!=g[i]){
					l++;
				}
				else {
					ans[q]=l;
					q++;
					break;
				}
			}
		}
		else if(a[mid]<g[i]){
			r=n;
			for(ll j=n;j>=0;j--){
				if(a[r]!=g[i])
				    r--;
				else{
					ans[q]=r;
					r--;
					q++;
					break;
				}
			}
		}
		else if(a[mid]==g[i]){
			for( l=1;l<=mid;l++){
				if(a[l]==g[i]){
					ans[q]=a[l];
					q++;
					
				}
			}
		}
		if(l==r){
			ans[q]=-1;
			q++;
		}
	}
	for(ll i=1;i<=m;i++)
	    printf("%lld",ans[i]);
	return 0;
}
2025/2/7 15:35
加载中...