典型的贪心,水题,收获是学会sort使用cmp对结构体排序!
#include<cstdio>
#include<algorithm>
using namespace std;
struct node
{
int Ei;
int Ki;
}Point[100010];
bool cmp(node a,node b)
{
return a.Ki*b.Ei>b.Ki*a.Ei;
}
int main()
{
int N;
while(~scanf("%d",&N)&&N)
{
for(int i=0;i<N;i++)
scanf("%d",&Point[i].Ei);
for(int i=0;i<N;i++)
scanf("%d",&Point[i].Ki);
sort(Point,Point+N,cmp);
long long sum=0,time=0;
for(int i=0;i<N;i++)
{
time+=Point[i].Ei;
sum+=time*Point[i].Ki;
}
printf("%I64d\n",sum);
}
}