A. The Fair Nut and Elevator
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
The Fair Nut lives in n
story house. ai people live on the i-th floor of the house. Every person uses elevator twice a day: to get from the floor where he/she lives to the ground (first) floor and to get from the first floor to the floor where he/she lives, when he/she comes back home in the evening.
It was decided that elevator, when it is not used, will stay on the x
-th floor, but x hasn't been chosen yet. When a person needs to get from floor a to floor b, elevator follows the simple algorithm:
-th floor (initially it stays on the x-th floor) to the a
- Moves from the x
- -th and takes the passenger.
- Moves from the a
- -th floor to the b-th floor and lets out the passenger (if a equals b, elevator just opens and closes the doors, but still comes to the floor from the x
- -th floor).
- Moves from the b
- -th floor back to the x
The elevator never transposes more than one person and always goes back to the floor x before transposing a next passenger. The elevator spends one unit of electricity to move between neighboring floors. So moving from the a-th floor to the b-th floor requires |a−b| units of electricity.
- -th.
Your task is to help Nut to find the minimum number of electricity units, that it would be enough for one day, by choosing an optimal the x
-th floor. Don't forget than elevator initially stays on the x-th floor.
Input
The first line contains one integer n
(1≤n≤100) — the number of floors.
The second line contains n
integers a1,a2,…,an (0≤ai≤100) — the number of people on each floor.
Output
In a single line, print the answer to the problem — the minimum number of electricity units.
Examples
InputCopy
3 0 2 1OutputCopy
16InputCopy
2 1 1OutputCopy
4Note
In the first example, the answer can be achieved by choosing the second floor as the x
-th floor. Each person from the second floor (there are two of them) would spend 4 units of electricity per day (2 to get down and 2 to get up), and one person from the third would spend 8 units of electricity per day (4 to get down and 4 to get up). 4⋅2+8⋅1=16.
In the second example, the answer can be achieved by choosing the first floor as the x
-th floor.
题意:这个题是让求电梯的最优楼层,每次接人的时候,电梯会从最优楼层去到人所在楼层,送至所取的楼,再返回最优楼层,每走一层消耗1电力,要总电力最少。
题解:直接按公式写就好,记住3楼到1楼消耗2个电!
#include<bits/stdc++.h>
using namespace std;
const int maxn = 105;
int num[maxn];
int main() {
int n,ans=9999999;
cin >>n;
for(int i = 1; i <= n; i++) {
scanf("%d",&num[i]);
}
for(int i = 1;i <= n;i++){
int temp = 0;
for(int j = 1;j <= n;j++){
temp += 2 * num[j] * (abs(i-j) + abs(j-1) + abs(1-i));
}
ans = min(temp,ans);
}
cout << ans << endl;
}