大佬求助 超时 10分
查看原帖
大佬求助 超时 10分
814674
ShenWeichen楼主2024/3/14 19:39
#include<iostream>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int a[n],b[m];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<m;i++)
        cin>>b[i];
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-1-i;j++)
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
            }
    for(int i=0;i<m-1;i++)
        for(int j=0;j<m-1-i;j++)
            if(b[j]>b[j+1]){
                swap(b[j],b[j+1]);
            }
    int l,r,mid;
    for(int i=0;i<n;i++){
    	l=0;
    	r=m-1;
		mid=(l+r)/2;
    	while(1){
			if(a[i]==b[mid]){
    			cout<<a[i]<<" ";
    			break;
			}
			if(l==r)
				break;
			if(a[i]<b[mid]){
				r=mid;
				mid=(l+r)/2;
			}
			if(a[i]>b[mid]){
				l=mid;
				mid=(l+r)/2;
			}
		}
	}
}
2024/3/14 19:39
加载中...