4个TLE,蒟蒻求助!
查看原帖
4个TLE,蒟蒻求助!
409774
Maysoul楼主2021/10/17 22:14

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[1000000];
int b[1000000];
int x(int n,int k)
{
	int left=0;
	int right=k-1;
	int sum=0;
	while(left<=right)
	{
		int mid=(left+right)/2;
		if (a[mid]==n)
		{
			sum=mid;
			for(int i=0;i<mid;i++)
			{
				if(a[i]==n)
				{
					return i;
				}
			}
			return sum;
		}
		if (a[mid]>=n)
		{
			right=mid-1;
		}
		else
		{
			left=mid+1;
		}
	}
	return -1;
}
int main()
{
	int c,m,n,num;
	cin>>c>>m;
	for (int i=0;i<c;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<m;i++)
	{
		cin>>num;
		b[i]=x(num,c)+1;
	}
	for (int i=0;i<m;i++)
	{
		if(b[i]==0)
		{
			b[i]-=1;
		}
		cout<<b[i]<<" ";
	}
	return 0;
}
2021/10/17 22:14
加载中...