Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

func main() {
	mountHeightList := make([]int64, 10)
	scanner := bufio.NewScanner(os.Stdin)
	for i := 0; i < 10; i++ {
		scanner.Scan()
		mountHeightList[i], _ = strconv.ParseInt(scanner.Text(), 10, 64)
	}

	sort.Slice(mountHeightList, func(i, j int) bool { return mountHeightList[i] > mountHeightList[j] })

	for i := 0; i < 3; i++ {
		fmt.Printf("%d\n", mountHeightList[i])
	}
}

C++: #include<stdio.h>

int main(){
    int i;
    int input;
    int height[10];
    for (i = 0; i < 10; i++){
        scanf("%d", &input);
        height[i] = input;
    }

    for (i = 0; i < 10; i++)
        printf("%d\n", height[i]);

    int max1 = 0;
    for(i = 0; i < 10; i++)
        if (height[i] >= max1)
            max1 = height[i];

    int max2 = 0;
    for(i = 0; i < 10; i++)
        if (max1 >= height[i] >= max2)
            max2 = height[i];

    int max3 = 0;
    for(i = 0; i < 10; i++){
        if (max2 >= height[i] >= max3)
            max3 = height[i];
    }

    printf("%d\n", max1);
    printf("%d\n", max2);
    printf("%d\n", max3);

    return 0;
}

C++: #include <iostream>

int main() {
	
	int first, second, third;
	first = second = third = 0;
	
	for(int i=0; i<10; i++) {
		int t;
		std::cin >> t;
		
		if(first < t) {
			third = second;
			second = first;
			first = t;
		} else if(second < t) {
			third = second;
			second = t;
		} else if(third < t) {
			third = t;
		}
	}
	std::cout << first << std::endl;
	std::cout << second << std::endl;
	std::cout << third << std::endl;
	
	return 0;
}

C++: #include <iostream>
#include <set>

int main()
{
    std::set<int, std::greater<int>> s;
    for (int i = 0; i < 10; ++i) {
        int h;
        std::cin >> h;
        s.insert(h);
    }
    std::set<int, std::greater<int>>::iterator it = s.begin();
    for (int i = 0; i < 3; ++i)
        std::cout << *it++ << std::endl;
}

C++: #include <stdio.h> 
using namespace std; 
int main(){ 
int count[10001],
tmp,num=3; 
for(int i=0;i<10001;i++)
count[i]=0;
 for(int i=0;i<10;i++){ 
scanf("%d",&tmp);
 count[tmp]++; } 
for(int i=10000;i>=0&&num>0;i--){
 if(count[i]>0){ 
for(int k=0;k<count[i]&&num>0;k++){
 printf("%d\n",i);
 num--;
 } 
} 
} 
return 0; }

C++: #include<iostream>
#include<algorithm>

using namespace std;

int main() {
	int height[10];

	for (int i = 0; i < 10; i++) {
		cin >> height[i];
	}

	sort(height, height + 10);

	for (int i = 0; i < 3; i++) {
		cout << height[i] << endl;
	}

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){

    int m[10], temp;
    for(int i = 0; i < 10; i++)
        cin >> m[i];

    for(int i = 0; i < 4; i++){
        for(int j = i + 1; j < 10; j++){
            if(m[i] < m[j]){
                temp = m[i];
                m[i] = m[j];
                m[j] = temp;
            }
        }
    cout << m[i] << endl;
    }
}

C++: #include <iostream>
using namespace std;

const int HILLS = 10;

void repMinOfThree(int hill[], int height)
{
    int *hillTmp = 0;
    if (height > hill[0] || height > hill[1] || height > hill[2])
    {
        hillTmp = (hill[0] < hill[1] ? hill : hill + 1);
        hillTmp = (hill[2] < *hillTmp ? hill+2 : hillTmp);
        *hillTmp = height;
    }
}

int cmp (const void *a, const void *b)
{
    return (*(int*)a - *(int*)b);
}


int main()
{
    int hill[3] = {0};
    int i = 0;
    int mountainHeight = 0;

    while (i < HILLS)
    {
        cin >> mountainHeight;
        repMinOfThree (hill, mountainHeight);
        i++;
    }

    qsort (hill, 3, sizeof(hill[0]), cmp);

    cout << hill[2] << endl
        << hill[1] << endl
        << hill[0] << endl;

  //  system("pause");
    return 0;
}

C++: include<iostream>
using namespace std;

int main(){
  int tall[10],no1=0,no2=0,no3=0,i=0;
  for(i=0;i<=9;i++){
    cin>>tall[i];
  }
  for(i=0;i<=9;i++){
    if(tall[i]>=no1){
      no3=no2;
      no2=no1;
      no1=tall[i];
    }
    if(tall[i]>=no2&&tall[i]<no1){
      no3=no2;
      no2=tall[i];
    }
    if(tall[i]>=no3&&tall[i]<no2){
      no3=tall[i];
    }
  }
  cout<<endl<<no1<<endl<<no2<<endl<<no3<<endl;

  return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

//int compare(int a, int b){
//    if (a>b) return b;
//    else return a;
//}
int main() {
    vector<int> array = {};
    int nb;
    for (int i = 0; i<10; i++) {
        scanf("%d", &nb);
        array.push_back(nb);
    }
    sort(array.begin(),array.end());
    reverse(array.begin(),array.end());
    for (int i = 0; i<3; i++){
        printf("%d\n", array[i]);
    }
}

C++: #include <iostream>
#include <algorithm>
#include <stdio.h>
#define pri(dt) printf("%d\n",dt)
#define RPE0(loopTotal)  for(int i=0;i<=(loopTotal);i++)
#define RPE(loopTotal)  for(int i=1;i<=(loopTotal);i++)

int data[9];

using namespace std;
int main(void){
    
    RPE0(9) scanf("%d",&data[i]);
    sort(data,data+9,greater<int>());
    RPE0(2) pri(data[i]);
data[] = {0};
}

C++: #include <iostream>
#include <string>
using namespace std;
 
int main(){
int rank[3],a[10],i = 0,ii = 0;
rank[0] = 0;
rank[1] = 0;
rank[2] = 0;
while(i <= 9){
	cin >> a[i];
	while(ii <= 2){
		if(rank[ii] < a[i]){
			if(ii != 2){
			rank[ii+1] = rank[ii];
			rank[ii] = a[i];
			}
			break;
		}
		ii++;
	}
i++;
ii = 0;

}
cout<<rank[0]<<endl<<rank[1]<<endl<<rank[2]<<endl;




}

C++: #include <iostream>
#include <vector>
#include <string>
#include <algorithm>

int main() {
    std::vector<int> hills;
    for (int i = 0; i < 10; i++) {
        std::cout << i << std::endl;
        std::string input;
        std::cin >> input;
        int height = std::stoi(input);
        hills.push_back(height);
    }

    std::sort(hills.begin(), hills.end(), std::greater<int>());
    for (int i = 0; i < 3; i++) {
        std::cout << hills[i] << std::endl;
    }

    return 0;
}

C++: #include<iostream>
using namespace std;

int main(){

	int hill[]={0,0,0,0,0,0,0,0,0,0};

	for(int j=0;j<=9;j++){
		cin>>hill[j];
	}

	int key;
	int flag;

	//sort
	for(key=9;key>=0;key--){

		for(int i=0;i<=key;i++){
			if(hill[i]>hill[i+1]){
				flag=hill[i];hill[i]=hill[i+1];hill[i+1]=flag;
			}
		}

	}

	cout<<hill[9]<<endl<<hill[8]<<endl<<hill[7]<<endl;

	return 0;

}

C++: class Main {
	public static void main(String[] args) {
		int a = 0,b = 0,c = 0,i,j;
		for(i = 0; i < 10; i++) {
				j = new java.util.Scanner(System.in).nextInt();
				if(0 <= j && j <= 10000) {
					if(j > a) {
						c = b;
						b = a;
						a = j;
					} else if(j > b) {
						c = b;
						b = j;
					} else if(j > c) {
						c = j;
					}
				} else {
					i--;
				}
		}
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}
}

C++: #include<iostream> 
#include<algorithm>
using namespace std;
void bubblesort(int A[]){
	for(int i=0;i<10;i++){
		for(int j=10-1;j>i;j--){
			if(A[j]>A[j-1]){
			int t=	A[j-1];
			A[j-1]=A[j];
			A[j]=t;
			}
		}
	}	
}
int main(){
	int A[10];
	int a; 
	for(int i=0;i<10;i++){
		
		cin>>a;
		if(a>0&&a<=10000)A[i]=a;
		
	}
	for(int i=0;i<3;i++)
	{
		bubblesort(A);
		if(i>0)cout<<endl;
		cout<<A[i];
	  } 
	 return 0;
}

C++: #include <iostream>
#include <algorithm>

using namespace std;

int main(void)
{
	int height[10];
	for (int& x : height) {
		cin >> x;
	}
	sort(&height[0], &height[10]);

	for (int i = 9; i >= 7; i--) {
		cout << height[i] << endl;
	}

	return 0;
}

C++: #include <iostream>
using namespace std;

void swap(int *x, int *y){
    int temp;

    temp = *x;
    *x = *y;
    *y = temp;
}

int main(){
    int hill[10];
    int i, j, max=0;
    int key;

    for (i = 0; i < 10; i++) {
        cin >> hill[i];
    }

    // insert sort
    for (i = 0; i < 10; i++) {
        j = i;
        while((j > 0) && hill[j-1] > hill[j]){
            swap(&hill[j-1], &hill[j]);
            j--;
        }
    }

    for (i = 9; i > 6; i--) {
        // printf("%d\n", hill[i]);
        cout << hill[i] << endl;
    }
    return 0;
}