PS

백준 14241. 슬라임 합치기

tose33 2021. 8. 26. 16:28

https://www.acmicpc.net/problem/14241

 

14241번: 슬라임 합치기

영선이와 효빈이는 슬라임을 합치는 게임을 하고 있다. 두 사람은 두 슬라임을 골라서 하나로 합쳐야 한다. 게임은 슬라임이 하나 남았을 때 끝난다. 모든 슬라임은 양수 크기를 가지고 있다. 두

www.acmicpc.net

 

직접 해보면 알겠지만 어떤 방식으로 슬라임을 합쳐도 점수의 합은 같다.

내림차순으로 합치든 오름차순으로 합치든 중간부터 합치든 결국 점수는 같게된다.

 

따라서 입력을 받으면서 즉시 슬라임을 합치고 점수를 계산해 더해주면된다.

 

#include <iostream>
using namespace std;

int n;

int main()
{
    cin >> n;

    long long slime;
    cin >> slime;

    long long score = 0;

    for(int i = 1; i < n; i++)
    {
        long long slime2;
        cin >> slime2;

        score += slime * slime2;
        slime = slime + slime2;
    }

    cout << score;
}