// UVa 10954 - Add All #include <iostream> #include <queue> using namespace std; #define datatype unsigned long long int struct data { datatype v; }; bool operator <(const data & a, const data & b) { return a.v > b.v; } int main() { int n; cin >> n; while (n) { priority_queue<data> q; for (int i = 0; i < n; i++) { datatype v; cin >> v; q.push( { v }); } datatype sol = 0; while (q.size() > 1) { datatype a = q.top().v; q.pop(); datatype b = q.top().v; q.pop(); datatype sum = a + b; sol += sum; q.push( { sum }); } cout << sol << endl; cin >> n; } return 0; }
Showing posts with label UVa 10954 - Add All. Show all posts
Showing posts with label UVa 10954 - Add All. Show all posts
Monday, November 2, 2015
UVa 10954 - Add All
Subscribe to:
Posts (Atom)