期刊网站建设/电商运营工资一般多少钱一个月
题意大意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是 1 ,求最小路费。
解题思路:你会发现其实酒都是向右移动的, 把第一家的酒交给下一家,路费就是酒×1了;或者把负数的酒交给下一家,表示待会计算下家时有酒了就会反方向运过来,路费也是酒x1。然后继续下一家,由于上一家运费和供求都处理完了,第二家也可以同样处理它的当前供求。
以此类推,模拟一遍就能求出总路费了。
#include <cstdio>int main() {int n, num;while (scanf("%d", &n), n) {long long sum = 0, temp = 0;while (n--) {scanf("%d", &num);temp += num;sum += temp > 0 ? temp : -temp;}printf("%lld\n", sum);}return 0;
}