求教84分
查看原帖
求教84分
1383979
mndogdied楼主2024/8/12 21:17
#include<bits/stdc++.h>
using namespace std;
int a,b,d;
int c;
struct C
{
	int num,st;
}r[1000002];

int Eggboss(int x)
{
	int l=0,rr=c+1;
	r[l].num=INT_MIN;
	r[rr].num=INT_MAX;
	while(l+1<rr)
	{
		int m=(l+rr)/2;
		if(r[m].num>x) rr=m;
		else if(r[m].num<x) l=m;
		else return r[m].st;
	}
	return -1;
}
signed main()
{
	r[1].num=-1;
	r[1].st=-1;
	cin>>a>>b;
	for(int i=1;i<=a;i++)
	{
		int s;
		cin>>s;
		if(s!=r[c].num)
		{
			c++;
			r[c].num=s;
			r[c].st=i;
		}
	} 
//	if(c==0) c=1;
	for(int i=1;i<=b;i++)
	{
		cin>>d;
		cout<<Eggboss(d)<<' ';
	}
	
    return 0;
}

2024/8/12 21:17
加载中...