蒟蒻问一下两份代码的区别,一个六十,一个AC
查看原帖
蒟蒻问一下两份代码的区别,一个六十,一个AC
541553
wangshi楼主2022/3/17 09:07

AC

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<array>
using namespace std;
int a[100010];
long long ans;
int main()
{
	int m,n;
	cin>>m>>n;
	for(int i=1;i<=m;i++) cin>>a[i];
	sort(a+1,a+m+1);
    for(int i=1;i<=n;i++)
    {
    	int s,s1;
        cin>>s;
        s1=lower_bound(a+1,a+m+1,s)-a;
        if(s1==m+1) ans+=s-a[m];
        else
            if(s1==1)
                ans+=a[1]-s;
            else
                ans+=min(abs(a[s1]-s),abs(s-a[s1-1]));
    }
	cout<<ans;
	return 0;
}

60

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<array>
using namespace std;
array<int,100010> a;
long long ans;
int main()
{
	int m,n;
	cin>>m>>n;
	for(int i=1;i<=m;i++) cin>>a[i];
	sort(a.begin(),a.end());
    for(int i=1;i<=n;i++)
    {
    	int s,s1;
        cin>>s;
        s1=lower_bound(a.begin(),a.end(),s)-a.begin();
        if(s1==m+1) ans+=s-a[m];
        else
            if(s1==1)
                ans+=a[1]-s;
            else
                ans+=min(abs(a[s1]-s),abs(s-a[s1-1]));
    }
	cout<<ans;
	return 0;
}

这个array和数组有什么区别

2022/3/17 09:07
加载中...