Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3.  
  4. int compare(const void* first, const void* second)
  5. {
  6.     if (*(int*)first <  *(int*)second) return -1;
  7.     if (*(int*)first >  *(int*)second) return 1;
  8.     return 0;
  9. }
  10.  
  11. int main()
  12. {
  13.     // Reading data
  14.     int N = 0;
  15.     fstream file_stream{ "input.txt", ios::in };
  16.     file_stream >> N;
  17.     int* values = new int[N];
  18.     for (int i = 0; i < N; i++)
  19.         file_stream >> values[i];
  20.     file_stream.close();
  21.  
  22.     // Sort
  23.     qsort(values, N, sizeof(*values), &compare);
  24.  
  25.     int begin = 0, price = 0;
  26.     while (begin < N - 1)
  27.     {
  28.         values[begin + 1] += values[begin];
  29.         price += values[begin + 1];
  30.         begin++;
  31.         for(int i = begin; i < N - 1 && values[i] > values[i + 1]; i++)
  32.         {
  33.             int tmp = values[i];
  34.             values[i] = values[i + 1];
  35.             values[i + 1] = tmp;
  36.         }
  37.     }
  38.     delete[] values;
  39.  
  40.     // Writing result
  41.     file_stream.open("output.txt", ios::out);
  42.     file_stream << price;
  43.     file_stream.close();
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement