个人一起排队接水,第 个人需要 的时间来接水。
同时只能有一个人接水,正在接水的人和没有接水的人都需要等待。
完成接水的人会立刻消失,不会继续等待。
你可以决定所有人接水的顺序,并希望最小化所有人等待时间的总和。
超级简单的一道贪心题,由于一个正在接水的人会影响到所有还没有接水的人,所以我们只需要贪心一下让需要时间少的人优先接水就好了。排一下序然后求一个前缀和即可。
关键代码:
for(I=1;I<=N;I++){
Time[I]=Read();
}
sort(Time+1,Time+1+N);
for(I=1;I<=N;I++){
Sum[I]=Sum[I-1]+Time[I];
}
for(I=1;I<=N;I++){
Ans+=Sum[I];
}