|Vijos|贪心|P1662 最大配对

https://vijos.org/p/1662

把两个a,b从小到大排序,此时绝对值差最大的绝对是a头-b尾或者b头-a尾,最后累加起来即可

#include
#include
#include
#include
#include
#define ms(i,j) memset(i,j,sizeof(i));
using namespace std;
int a[1000005];
int b[1000005];
int n,k;
long long ans = 0;
int main()
{
	scanf("%d%d", &n, &k);
	for (int i=0;iabs(b[b1]-a[a2]))
		{
			ans += abs(a[a1]-b[b2]);
			a1++, b2--;
		} else
		{
			ans += abs(b[b1]-a[a2]);
			b1++, a2--;
		}
	}
	printf("%lld\n", ans);
    return 0;
}


你可能感兴趣的:(贪心,Vijos)