しろは的军训列队

代码

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;

const int N = 1e6;
int n , a[N + 5] , b[N + 5];
struct node{
	int a , b;
}c[N + 5];
LL val , ans , k1 , k2;

inline bool cmp(node x , node y) { return x.a < y.a; }

int main()
{
	scanf("%d" , &n);
	for(register int i = 1; i <= n; i++) scanf("%d" , &c[i].a);
	for(register int i = 1; i <= n; i++) scanf("%d" , &c[i].b);
	sort(c + 1 , c + n + 1 , cmp);
	for(register int i = 2; i <= n; i++) val += 1LL * (c[i].a - c[1].a) * c[i].b , k1 += 1LL * c[i].b;
	k2 = c[1].b , ans = val;
	for(register int i = 2; i <= n; i++)
	{
		val -= 1LL * k1 * (c[i].a - c[i - 1].a);
		val += 1LL * k2 * (c[i].a - c[i - 1].a);
		k1 -= c[i].b , k2 += c[i].b;
		ans = min(ans , val); 
	}
	printf("%lld" , ans);
}
posted @ 2020-02-22 18:27  leiyuanze  阅读(116)  评论(0)    收藏  举报