解法一:模拟

模拟电梯的运动,根据上一个状态的位置来计算运动耗时。

  1. import java.io.*;
  2. public class Main {
  3. public static void main(String[] args) throws IOException {
  4. StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
  5. PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  6. in.nextToken();
  7. int N = (int) in.nval;
  8. final int UP = 6, DOWN = 4, WAIT = 5;
  9. int last = 0, cur, delta;
  10. int cost = N * WAIT;
  11. for (int i = 0; i < N; ++i) {
  12. in.nextToken();
  13. cur = (int) in.nval;
  14. delta = Math.abs(cur - last);
  15. if (cur > last) {
  16. cost += UP * delta;
  17. } else {
  18. cost += DOWN * delta;
  19. }
  20. last = cur;
  21. }
  22. out.println(cost);
  23. out.flush();
  24. }
  25. }