[白俊]1399号ATM


問題とI/O



質問へのアクセス


最大値を要求し、入力した引き出し時間を降順に並べて累積すればよい.
降順はArrayssort()関数を用いて実装する.
DPを累計して使用して実現する.

インプリメンテーションコード

import java.io.*;
import java.util.*;

public class Main {
  static int dp[];
  static int arr[];

  static void cal(int a) {
    if(a == 0) dp[a] = arr[a];
    else dp[a] = arr[a] + dp[a - 1];
  }

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());

    StringTokenizer st = new StringTokenizer(br.readLine());
    dp = new int[N];
    arr = new int[N];
    for(int i = 0; i < N; i++) arr[i] = Integer.parseInt(st.nextToken());

    Arrays.sort(arr);

    int sum = 0;
    for(int i = 0; i < N; i++) {
      cal(i);
      sum += dp[i];
    }

    System.out.println(sum);
  }
}