Go: package main

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

var maxint = 10000
var scanner = bufio.NewScanner(os.Stdin)

func nextInt() (int, error) {
	scanner.Scan()
	return strconv.Atoi(scanner.Text())
}

func main() {
	scanner.Split(bufio.ScanWords)
	arr := make([]int, 10)
	for i := range arr {
		n, _ := nextInt()
		arr[i] = n
	}

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

	arrStr := fmt.Sprintf("%+v", arr[0:3])
	arrStr = arrStr[1:(len(arrStr) - 1)]
	arrStr = strings.Replace(arrStr, " ", "\n", -1)
	fmt.Println(arrStr)
}

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

int main()
{
    int first = 0;
    int second = 0;
    int third = 0;
    std::array<int, 10> arr;

    for (int i = 0; i < 10; i++) {
        std::cin >> arr.at(i);
        if (arr.at(i) >= first) {
            third = second;
            second = first;
            first = arr.at(i);
        } else if (arr.at(i) >= second) {
            third = second;
            second = arr.at(i);
        } else if (arr.at(i) >= third) {
            third = arr.at(i);
        }
    }

    std::cout << first << std::endl
              << second << std::endl
              << third << std::endl;
    return 0;
}

C++: #include <cstdio>
#include <iostream>
#include <queue>

using namespace std;

int main()
{
	int buf;
	priority_queue<int> qu;

	for ( int i = 0; i < 10; i++ )
	{
		cin >> buf;
		qu.push( buf );
	}

	for ( int i = 0; i < 3; i++ )
	{
		printf("%d\n", qu.top() );
		qu.pop();
	}

	return 0;
}

C++: #include<iostream>
using namespace std;
  
int main(){
  
    int height[10];
    int TopOfThree[3];
 
    for(int i = 0;i < 10;i++)
       cin >> height[i];
 
    for(int i = 0;i < 3;i++)
    {
         int index;
        TopOfThree[i] = height[0];
        for(int j = 1;j < 10 - i;i++)
        { 
             if(TopOfThree[i] < height[j])
             {
                  TopOfThree[i] = height[j];
                  index = j;
             }
        }
 
        for(int k = index;k < 10;k++)
        {
            if(k == 9)
              height[k] = 0;
           else
              height[k] = height[k + 1];
        }
     }
 
     cout << TopOfThree[0] << endl << TopOfThree[1] << endl << TopOfThree[2] << endl;
 
    return 0;
}

C++: #include <stdio.h>

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

        if (rank[0] < height[i]){
        	rank[2] = rank[1];
        	rank[1] = rank[0];
        	rank[0] = height[i];
        }else if (rank[1] < height[i]){
        	rank[2] = rank[1];
        	rank[1] = height[i];
        }else if (rank[2] < height[i]){
        	rank[2] = height[i];
        }
    }

    for(i = 0; i < 3; i++){
    	printf("%d\n", rank[i])
    }

	return 0;
}

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

using namespace std;

void Top3Mountains(int m1,int m2,int m3,int m4,int m5,int m6,int m7,int m8,int m9, int m10)
{
	if ( m1 >= 0 && m1 <= 10000 &&
		m2 >= 0 && m2 <= 10000 &&
		m3 >= 0 && m3 <= 10000 &&
		m4 >= 0 && m4 <= 10000 &&
		m5 >= 0 && m5 <= 10000 &&
		m6 >= 0 && m6 <= 10000 &&
		m7 >= 0 && m7 <= 10000 &&
		m8 >= 0 && m8 <= 10000 &&
		m9 >= 0 && m9 <= 10000 &&
		m10 >= 0 && m10 <= 10000
		){
			deque<int> mountains;
			mountains.push_back(m1);
			mountains.push_back(m2);
			mountains.push_back(m3);
			mountains.push_back(m4);
			mountains.push_back(m5);
			mountains.push_back(m6);
			mountains.push_back(m7);
			mountains.push_back(m8);
			mountains.push_back(m9);
			mountains.push_back(m10);

			sort(mountains.begin(),mountains.end(),greater<int>());

			deque<int>::iterator it = mountains.begin();

			int i=0;
			for(i=0;i<3; i++){
				cout << *it << endl;
				it++;
			}
	}
}

int main()
{

	Top3Mountains(1819,2003,876,2840,1723,1673,3776,2848,1592,922);
	return 0;
}

C++: #include <iostream>

using namespace std;

void buble_sort(int high[]){
    int i,j,v,k;

    for(i = 0;i < 9;i++){
        v = i;
        for(j = i;j <= 9;j++){
            if(high[v] < high[j]){
                v = j;
            }
        }
        int box = high[i];
        high[i] = high[v];
        high[v] = box;

    }
}

int main() {
    int i,high[10];

    for (i = 0;i <= 9;i++){
        cin >> high[i];
    }

    buble_sort(high);

    cout << endl;

    for(i = 0;i <= 2;i++){
        cout << high[i] <<endl;
    }

    return 0;
}

C++: #include<iostream>
int main(){
	int a[10];
	int b;
	for (int i = 0; i < 10; i++){
		std::cin >> a[i];
	}

	for (int i = 0; i < 10; i++){
		for (int j = i + 1; j < 11; j++){
			if (a[i] < a[j]){
				b = a[i];
				a[i] = a[j];
				a[j] = b;
			}
		}
	}

	for (int i = 0; i < 3; i++){
		std::cout << a[i]<<std::endl;
	}
	
	return 0;
}

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

using namespace std;

int main()
{
    int mount[10];

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

    for (int i = 9; i > 6; i--)
        cout << mount[i] << '\n';

    return 0;
}

C++: #include<stdio.h>#include<algorithm>using std::sort;main(){int x[10],i;for(i=0;i<10;i++)scanf("%d",&x[i]);sort(x,x+10);printf("%d\n%d\n%d",x[9],x[8],x[7]);}

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

using namespace std;

int main(void){
	int h[10];
	for (int i=0; i<10; i++){
		cin >> h[i];
	}
	sort(h,h+10);

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

	return 0;
}

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

int main() {
	int a[9] = { 0 };
	

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

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

	return 0;
}

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

int main(){
	bool completed,flag;
	int result[3],buf,temp[10];
	for(int i = 0; i < 10; i++){
		cin >> temp[i];
	}
	for(int l = 0; l < 3; l++{
		while(1){
			for(int j = l; j < 9; j++){
				if(temp[j] < temp[j+1]){
					buf = temp[j+1];
					temp[j+1] = temp[j];
					temp[j] = buf;
				}
			}
			flag = false
			for(int k = 0; k < 9; k++){
				if(temp[0] < temp[k]) flag = true;
			}
			if(flag != true) result[l] = temp[l];
			break;
		}
	}
	cout << result[0] << endl;
	cout << result[1] << endl;
	cout << result[2] << endl;
	return 0;
}

C++: #include <iostream>

int main()
{
    int i,high[10];
    for(i = 0;i < 10;++i){
        std::cin >> high[i];
    }
    sort(high[0]);
    std::cout << high[0];
    std::cout << high[1];
    std::cout << high[2];
}

void sort(int *a)
{
    int i,first = 0,secand = 0,third = 0;
    for(i = 0;i < 10;++i){
       if(first < *(a + i)){
           first = *(a + i);
       }else if(secand < *(a + i)){
           secand = *(a + i);
       }else if(third < *(a + i)){
           third = *(a + i);
       }
    }
    *a = first;
    *(a + 1) = secand;
    *(a + 2) = third;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
	int n[10];
	for(int p=0;p<10;p++){
		cin>>n[p];
	}
	sort(n,n+10);
	 cout<<n[9]<<endl;
	 cout<<n[8]<<endl;
	 cout<<n[7]<<endl;
}

C++: #include <stdio.h>
#include <queue>

using namespace std;

int main(void) {
	int height[10];
	priority_queue<int,vector<int>> que;
	
	for(int i=0;i<10;i++){
		scanf("%d",&height[i]);
		que.push(height[i]);
	}
	for(int i=0; i<3; i++){
		printf("%d\n",que.top());
		que.pop();
	}
	
	return 0;
}

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

int main(){
	
	int height[10] = {};

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

	int f = 0, s = 0, t = 0;

	for (int i = 0; i < 9; i++){
		if (height[i] >= t){
			t = height[i];
		}
		if (t >= s){
			swap(s, t);
		}
		if (s >= f){
		swap(f,s);
		}
	}
    
	cout << f << "\n" << s << "\n" << t << endl;

		return 0;
}