ATM (λ¬Έμ _ 11399)
μΈνμνμλ ATMμ΄ 1λλ°μ μλ€. μ§κΈ μ΄ ATMμμ Nλͺ μ μ¬λλ€μ΄ μ€μ μμλ€. μ¬λμ 1λ²λΆν° Nλ²κΉμ§ λ²νΈκ° λ§€κ²¨μ Έ μμΌλ©°, iλ² μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ°μ PiλΆμ΄λ€.
μ¬λλ€μ΄ μ€μ μλ μμμ λ°λΌμ, λμ μΈμΆνλλ° νμν μκ°μ ν©μ΄ λ¬λΌμ§κ² λλ€. μλ₯Ό λ€μ΄, μ΄ 5λͺ μ΄ μκ³ , P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 μΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ. [1, 2, 3, 4, 5] μμλ‘ μ€μ μ λ€λ©΄, 1λ² μ¬λμ 3λΆλ§μ λμ λ½μ μ μλ€. 2λ² μ¬λμ 1λ² μ¬λμ΄ λμ λ½μ λ κΉμ§ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ, 3+1 = 4λΆμ΄ κ±Έλ¦¬κ² λλ€. 3λ² μ¬λμ 1λ², 2λ² μ¬λμ΄ λμ λ½μ λκΉμ§ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ, μ΄ 3+1+4 = 8λΆμ΄ νμνκ² λλ€. 4λ² μ¬λμ 3+1+4+3 = 11λΆ, 5λ² μ¬λμ 3+1+4+3+2 = 13λΆμ΄ κ±Έλ¦¬κ² λλ€. μ΄ κ²½μ°μ κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ 3+4+8+11+13 = 39λΆμ΄ λλ€.
μ€μ [2, 5, 1, 4, 3] μμλ‘ μ€μ μλ©΄, 2λ² μ¬λμ 1λΆλ§μ, 5λ² μ¬λμ 1+2 = 3λΆ, 1λ² μ¬λμ 1+2+3 = 6λΆ, 4λ² μ¬λμ 1+2+3+3 = 9λΆ, 3λ² μ¬λμ 1+2+3+3+4 = 13λΆμ΄ κ±Έλ¦¬κ² λλ€. κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ 1+3+6+9+13 = 32λΆμ΄λ€. μ΄ λ°©λ²λ³΄λ€ λ νμν μκ°μ ν©μ μ΅μλ‘ λ§λ€ μλ μλ€.
μ€μ μ μλ μ¬λμ μ Nκ³Ό κ° μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ° Piκ° μ£Όμ΄μ‘μ λ, κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ μ΅μκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ
λ ₯
첫째 μ€μ μ¬λμ μ N(1 β€ N β€ 1,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€μλ κ° μ¬λμ΄ λμ μΈμΆνλλ° κ±Έλ¦¬λ μκ° Piκ° μ£Όμ΄μ§λ€. (1 β€ Pi β€ 1,000)
μΆλ ₯
첫째 μ€μ κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ ν©μ μ΅μκ°μ μΆλ ₯νλ€.
μμ
5
3 1 4 3 2
answer : 32
νμ΄
κ° μ¬λμ΄ λμ μΈμΆνλλ° νμν μκ°μ μ μ¬λμμ κ±Έλ¦° μκ° + μμ μ΄ μΈμΆνλλ° νμν μκ°μ΄λ€.
κ·Έλ¬λ―λ‘ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νμ¬ μΈμΆνλ μκ°μ΄ μ κ² κ±Έλ¦¬λ μ¬λμ΄ λ¨Όμ μΈμΆν΄μΌ νλ€.
P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 μΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ. [1, 2, 3, 4, 5] μμλ‘ μ€μ μ λ€λ©΄
P1 = 3
P2 = P1 + 1 = (3) + 1 = 4
P3 = P1 + P2 + 4 = (3 + 1) + 4 = 8
...
P5 = P1 + P2 + P3 + P4 + 2 = (3 + 1 + 4 + 3) + 2 = 13
μ΄λ°μμΌλ‘ μκ°μ΄ κ³μ°λκ² λλ€.
κ³μ° κ³Όμ μ 보면 μμ μ¬λμ κ°κ³Ό νμ¬ λ΄κ° 걸리λ μκ°μ κ°μ΄ λν΄μ Έ μΈμΆ μκ°μ΄ κ²°μ λλ€λ μ¬μ€μ μ μ μλ€. κ·Έλ κΈ° λλ¬Έμ μμ μ¬λμ΄ κ±Έλ¦¬λ μκ°μ΄ μμκ² μ€μνλ€.
κ·Έλ κΈ° λλ¬Έμ sort ν¨μλ₯Ό μ΄μ©ν΄ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νκ³ , μ μ¬λμ΄ κ°μ μ μ₯νκΈ° μν΄ dp λ°°μ΄μ μ¬μ©ν΄ μ μ₯νλ€.
μ½λ
vector<int> datas;
int dp[1001];
int main(){
int n , tmp;
cin >> n;
for(int i=0;i<n;i++) {
cin >> tmp;
datas.push_back(tmp);
}
sort(datas.begin(), datas.end()); // κ°μ₯ μμ μμΌλ‘ λν΄μΌ ν¨
dp[0]= datas[0];
int sum = dp[0];
for(int i=1;i<n;i++){
dp[i] = dp[i-1] + datas[i]; // i-1κΉμ§ κ±Έλ¦° μκ° + iκ° κ±Έλ¦¬λ μκ°
sum += dp[i]; // μ΅μ’
μκ°μ κ±Έλ¦° μκ°λ€μ ν©
}
cout << sum;
}