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+1end);
}
 
int main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    
    for(int i=0;i<MAX;i++){
        cin >> num[i];
    }
    QuickSort(03);
    
    cout << num[0* num[2<< endl;
}
 
cs