#include #include #include #include #include using namespace std; int partition(float arr[], int arrId[], int start, int end) { float pivot = arr[start]; int count = 0; for (int i = start + 1; i <= end; i++) { if (arr[i] <= pivot) count++; } int pivotIndex = start + count; swap(arr[pivotIndex], arr[start]); swap(arrId[pivotIndex], arrId[start]); // Sorting left and right parts of the pivot element int i = start, j = end; while (i < pivotIndex && j > pivotIndex) { while (arr[i] > pivot) { i++; } while (arr[j] <= pivot) { j--; } if (i < pivotIndex && j > pivotIndex) { swap(arr[i], arr[j]); swap(arrId[i++], arrId[j--]); } } return pivotIndex; } void quickSort(float arr[], int arrId[], int start, int end) { if (start >= end) return; int p = partition(arr, arrId, start, end); quickSort(arr, arrId, start, p - 1); quickSort(arr, arrId, p + 1, end); } int main() { ifstream inp; inp.open("sticks.in"); int n; long long b; inp>>n>>b; int* h = new int[n]; long long* p = new long long[n]; for (int i = 0; i < n; ++i) { inp>>h[i]; } for (int i = 0; i < n; ++i) { inp>>p[i]; } inp.close(); //cout<<1<= b) { //cout<<2<<" "<