Coding/백준
2959번 거북이
labote
2020. 2. 13. 04:58
정렬만 하면 끝나는 문제.
정렬하고 1번째 숫자와 3번째 숫자를 곱한 값이 최대값이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <iostream> #define MAX 4 using namespace std; int num[MAX]; void QuickSort(int start, int end){ if(start-end>=0){ return; } int pivot=start; int i=start+1; int j=end; while(i<=j){ while(i<=end && num[pivot]>=num[i]){ i++; } while(j>start && num[pivot]<=num[j]){ j--; } if(i>j){ int temp=num[j]; num[j]=num[pivot]; num[pivot]=temp; }else{ int temp=num[i]; num[i]=num[j]; num[j]=temp; } } QuickSort(start,j-1); QuickSort(j+1, end); } int main(){ std::ios::sync_with_stdio(false); cin.tie(0); for(int i=0;i<MAX;i++){ cin >> num[i]; } QuickSort(0, 3); cout << num[0] * num[2] << endl; } | cs |