#include <iostream>
#include <set>
typedef long long ll;
int main()
{
std::multiset<ll> st;
int n;
ll population;
std::cin >> n;
for(int i = 0; i < n; ++i)
std::cin >> population;
st.insert(population);
}
ll result = 0;
while(st.size() > 1)
ll a = *st.begin();
ll b = *(++st.begin());
st.erase(st.begin());
a += b;
result += a;
st.insert(a);
std::cout << result;
return 0;
Объяснение:
Решил не я!
70, 35, 43, 132, 121, 11, 60, 64, 24, 31
1) Изначально s = 0, затем на каждой из 12 – 6 + 1 = 7 итераций к ней прибавляется 10, итого получится 70
2) Аналогично, s = 0 + 7 * (8 – 3) = 35
3) Итерация с i = 1: k = 2 * 4 + 1 = 9. Итерация с i = 2: k = 2 * 9 + 2 = 20. Итерация с i = 3: k = 2 * 20 + 3 = 43.
4) s = 0 + 12 * 11 = 132
5) s = 0 + 11 * (12 – 1) = 121
6) u = 26 – 1 – 2 – 3 – 4 – 5 = 11
7) s = 4 + 5 + … + 11 = 60
8) s = 1 * 2 * 2 * … * 2 (8 – 3 + 1 раз) = 64
9) y = 0 + 4 * 1 + 4 * 2 + 4 * 3 = 24
10) s = 3 + 2 * 2 + 2 * 3 + 2 * 4 + 2 * 5 = 31
#include <iostream>
#include <set>
typedef long long ll;
int main()
{
std::multiset<ll> st;
{
int n;
ll population;
std::cin >> n;
for(int i = 0; i < n; ++i)
{
std::cin >> population;
st.insert(population);
}
}
ll result = 0;
while(st.size() > 1)
{
ll a = *st.begin();
ll b = *(++st.begin());
st.erase(st.begin());
st.erase(st.begin());
a += b;
result += a;
st.insert(a);
}
std::cout << result;
return 0;
}
Объяснение:
Решил не я!
70, 35, 43, 132, 121, 11, 60, 64, 24, 31
Объяснение:
1) Изначально s = 0, затем на каждой из 12 – 6 + 1 = 7 итераций к ней прибавляется 10, итого получится 70
2) Аналогично, s = 0 + 7 * (8 – 3) = 35
3) Итерация с i = 1: k = 2 * 4 + 1 = 9. Итерация с i = 2: k = 2 * 9 + 2 = 20. Итерация с i = 3: k = 2 * 20 + 3 = 43.
4) s = 0 + 12 * 11 = 132
5) s = 0 + 11 * (12 – 1) = 121
6) u = 26 – 1 – 2 – 3 – 4 – 5 = 11
7) s = 4 + 5 + … + 11 = 60
8) s = 1 * 2 * 2 * … * 2 (8 – 3 + 1 раз) = 64
9) y = 0 + 4 * 1 + 4 * 2 + 4 * 3 = 24
10) s = 3 + 2 * 2 + 2 * 3 + 2 * 4 + 2 * 5 = 31