#include <stdio.h>
#include <stdint.h>
#include <limits.h>
void find_top_3(uint8_t *arr, uint8_t n) {
// Your logic here
#define max(a,b) (a>b)?a:b
#define min(a,b) (a<b)?a:b
if(n==2){
printf("%d %d",max(arr[0],arr[1]),min(arr[0],arr[1]));
return;
}
if(n==1){
printf("%d",arr[0]);
return;
}
uint8_t max1 = 0;
uint8_t max2 = 0;
uint8_t max3 = 0;
for(uint8_t i=0;i<n;i++){
if(arr[i]>max1){
max3=max2;
max2=max1;
max1=arr[i];
}
else if(arr[i]>max2){
max3=max2;
max2=arr[i];
}
else if(arr[i]>max3){
max3=arr[i];
}
}
printf("%d %d %d",max1,max2,max3);
}
int main() {
uint8_t n;
scanf("%hhu", &n);
uint8_t arr[100];
for (uint8_t i = 0; i < n; i++) {
scanf("%hhu", &arr[i]);
}
find_top_3(arr, n);
return 0;
}
Input
6 10 90 20 80 70 30
Expected Output
90 80 70