#include <stdio.h> #include <stdint.h> void find_top_3(uint8_t *arr, uint8_t n) { // Your logic here uint8_t m1 =arr[0]; uint8_t m2 =arr[0]; uint8_t m3 =arr[0]; for(uint8_t i=0;i<n;i++) { if(arr[i]>m1) { m3=m2; m2=m1; m1=arr[i]; }else if(arr[i]>m2 && arr[i]< m1) { m3 = m2; m2 = arr[i]; }else if(arr[i]>m3 && arr[i]< m1 && arr[i] < m2) { m3 = arr[i]; } } if(n>=3) { printf("%d %d %d\n",m1,m2,m3); }else if(n==2) { printf("%d %d\n",m1,m2); }else if(n==1) { printf("%d\n",m1); } } 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; }
Test Cases
Test Results
Input
6 10 90 20 80 70 30
Expected Output
90 80 70