Advertisement
labyyysosaaat

Untitled

Oct 21st, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6. ifstream fin("bridge.in");
  7. ofstream fout("bridge.out");
  8.  
  9. void quickSort(int *arr, int left, int right) {
  10. int i = left, j = right;
  11. int tmp;
  12. int pivot = arr[(left + right) / 2];
  13.  
  14. /* разделение */
  15. while (i <= j) {
  16. while (arr[i] < pivot)
  17. i++;
  18. while (arr[j] > pivot)
  19. j--;
  20. if (i <= j) {
  21. tmp = arr[i];
  22. arr[i] = arr[j];
  23. arr[j] = tmp;
  24. i++;
  25. j--;
  26. }
  27. };
  28.  
  29. /* рекурсия */
  30. if (left < j)
  31. quickSort(arr, left, j);
  32. if (i < right)
  33. quickSort(arr, i, right);
  34.  
  35. }
  36. int main()
  37. {
  38. int n;
  39. fin >> n;
  40. int* passer = new int[n];
  41. for (long long i = 0; i < n; i++)
  42. {
  43. fin >> passer[i];
  44. }
  45. quickSort(passer, 0, n - 1);
  46.  
  47. for (int i = 2; i < n; i++)
  48. {
  49. passer[i] += min(passer[i - 1] + passer[0], passer[i - 2] + passer[0] + 2 * passer[1]);
  50. }
  51. fout << passer[n - 1] << endl;
  52.  
  53. delete[] passer;
  54. fin.close();
  55.  
  56. fout.close();
  57. system("pause");
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement