Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- int compare(const void* first, const void* second)
- {
- if (*(int*)first < *(int*)second) return -1;
- if (*(int*)first > *(int*)second) return 1;
- return 0;
- }
- int main()
- {
- // Reading data
- int N = 0;
- fstream file_stream{ "input.txt", ios::in };
- file_stream >> N;
- int* values = new int[N];
- for (int i = 0; i < N; i++)
- file_stream >> values[i];
- file_stream.close();
- // Sort
- qsort(values, N, sizeof(*values), &compare);
- int begin = 0, price = 0;
- while (begin < N - 1)
- {
- values[begin + 1] += values[begin];
- price += values[begin + 1];
- begin++;
- for(int i = begin; i < N - 1 && values[i] > values[i + 1]; i++)
- {
- int tmp = values[i];
- values[i] = values[i + 1];
- values[i + 1] = tmp;
- }
- }
- delete[] values;
- // Writing result
- file_stream.open("output.txt", ios::out);
- file_stream << price;
- file_stream.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement