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 <iostream>
using namespace std;

int main(){
    int mt[10], tmp;
    int g = 1;

    for(int i = 0; i < 10; ++i){
        cin >> mt[i]; 
    }
    while(g){
        g = 0;
        for(int i = 1; i < 10; ++i){
            if(mt[i - 1] < mt[i]){
                tmp = mt[i - 1];
                mt[i - 1] = mt[i];
                mt[i] = tmp;
                g = 1;
            }
        }
    }
    
    for(int i = 0; i < 3; ++i){
        cout << mt[i] << " ";
    }
    return 0;
}

C++: #include <iostream>
#include <stdio.h>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;


int main(){
	vector<int> v;
	int x;
	for(int i=0;i<10;i++){
		cin >> x;
		v.push_back(x);
	}
	sort(v.begin(),v.end(),greater<int>());
	for(int i=0;i<3;i++){
		cout << v[i] << endl;
	}
	return 0;
}

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


int main(void)
{
    int i;
    int num[10];

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

    sort(&num[0], &num[9]);

    printf("%d\n", num[9]);
    printf("%d\n", num[8]);
    printf("%d\n", num[7]);

    return 0;
}

C++: #include<iostream>
using namespace std;
int main() {
	int a[10], min1 = -1, min2 = -1, min3 = -1, i, j, k, l;
	for (i = 0; i < 10; i++) {
		cin >> a[i];
	}
	for (j = 0; j < 10; j++) {
		if (a[j] > min1) {
			min1 = a[j];
		}
	}
	for (k = 0; k < 10; k++) {
		if (a[k] > min2 && a[k] != min1) {
			min2 = a[k];
		}
	}
	for (l = 0; l < 10; l++) {
		if (a[l] > min3&&a[l] != min2&&a[l] != min1) {
			min3 = a[l];
		}
	}
	cout << min1 << endl << min2 << endl << min3 << endl;
	return 0;
}

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


int main(){
	int a[10];
	int n;
	for (int i = 0; i < 10; i++){
		cin >> a[i];
	}
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 10; j++){
			if (i < j){
				if (a[i] < a[j]){
					n = a[i];
					a[i] = a[j];
					a[j] = n;
				}
			}
		}
	}
	for (int i = 0; i < 3; i++){
		cout << a[i] << endl;
	}
	return 0;
}

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

int main(){
	int yama[10], i, p, Flag = 0, t;
	for(i = 0; i < 10; i++)
		cin >> yama[i];
	while(1){
		Flag = 0;
		for(i = 0; i < 10; i++){
			if(yama[i] < yama[i + 1]){
				t = yama[i];
				yama[i] = yama[i + 1];
				yama[i + 1] = t;
				Flag++;
			}
		}
		if(Flag != 0)
			break;
	}
	cout << yama[1] << "\n"
	cout << yama[2] << "\n"
	cout << yama[3] << "\n"
	return 0;
}

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

int main(void) {
    std::priority_queue<u_int> heights;
    //??\???
    for (u_int h, i = 0; i < 10; ++i) {
        std::cin >> h;
        heights.push(h);
    }
	//??????
    for (u_int i = 0; i < 3; ++i) {
        std::cout << heights.top() << std::endl;
        heights.pop();
    }
    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 );
	}
	putchar('\n');

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

	return 0;
}

C++: #include <algorithm>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <cctype>
#include <iostream>
#include <set>
#include <string>
#include <queue>
#include <map>
using namespace std;
int size(string x){
	string::size_type size=x.size();
	return size;
}
#define fu(l,k) for(int i=l;i<k;i++)
#define fd(l,k) for(int i=l;i>k;i--)
#define fi first
#define se second
typedef  vector<string> vs;
typedef  vector<int> vi;
double pi(){
	return M_PI;
}
typedef set<int> set_i;
typedef set<string> set_s;
int main(){
	vi a(10,0);
	fu(0,10){
		cin>>a[i];
	}
	sort(a.rbegin(), a.rend());
	fu(0,3){
		cout<<a[i]<<endl;
	}
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;

#define FOR(i,a,b) for(long long int i=(a);i<(b);i++)
#define REP(i,n) for(long long int i=0;i<(n);i++)
#define ALL(s) (s).begin(),(s).end()

#define PI 3.14159265358479

typedef long long int ll;
typedef vector<long long int> vi;

int main(){
	vi v;
	ll m;
	REP(i, 10){
		cin >> m;
		v.push_back(m);
	}
	sort(ALL(v));
	REP(i, 3){
		cout << v[9-i] << "\n";
	}
	return 0;
}

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

using namespace std;

int main(){
  int nums[10];
  for(int i=0;i<10;i++){
    cin>>nums[i];
  }
  sort(nums,nums+10,greater<int>());
  for(int i=0;i<3;i++)
    cout<<nums[i]<<endl;
  return 0;
}

C++: #include <iostream>
#include <stdlib.h>

using namespace std;

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

int main(){

	int data[11];
	int i;

	for (i = 0; i < 10; i++) cin >> data[i];
	qsort(data, 10, sizeof(int), compare_int);
	for (i = 0; i < 3; i++) {
		cout << data[i] << endl;
	}
	cin >> i;
}

C++: #include <iostream>
int main(){
	int a[10],i,j,n;
	for(i=0;i<10;++i){
		std::cin>>a[i];
		}
   		for(i=0;i<9;++i){
      		for(j=i+1;j<10;++j){
      			if(a[i]<a[j]){
      				n=a[i];
       				a[i]=a[j];
      				a[j]=n;
       			} 
       		}
       }
       for(i=0;i<3;++i){
       std::cout<<a[i]<<std::endl;
       			}
		
		return 0;
}

C++: #include<stdio.h>
int main(){
	int i, j;
	int buff;
	int m[10];
	for (i = 0; i < 10; i++) {
		scanf("%d", &m[i]);
	}
	for (i = 0; i < 3; i++) {
		buff = m[i];
		for (j = i+1; j < 10; j++) {
			if (m[i] < m[j]) {
				buff = m[i];
				m[i] = m[j];
				m[j] = buff;
			}
		}
	}
	for (i = 0; i < 3; i++) {
		printf("%d\n", m[i]);
	}
	return 0;
}

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

int main(){
    vecctor<int> v;
    int num;
    for(int i = 0;i<10;i++){
        cin>>num;
        v.push_back(num);
    }

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


    for(int i = 0;i<3;i++)
        cout<<v.at(i);
    return 0;
}

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

int main() {
    std::set<int> s = {1819
,2003
,876
,2840
,1723
,1673
,3776
,2848
,1592
,922};
    auto itr = s.end();
    --itr;
    std::cout << *itr << std::endl;
    --itr;
    std::cout << *itr << std::endl;
    --itr;
    std::cout << *itr << std::endl;
    return 0;
}

C++: #include<stdio.h>
nit mian(void)
{
	int i,j,n[11]
	for(i=0;i<10;i++){
		scanf("%d",n[i]);
	}
	for(i=0;i<10;i++){
		for(j=0;j<=10;j++){
			if(n[j]<=n[i]){
				w=n[i];
				n[i]=n[j];
				n[j]=w;
			}
		}
	}
	for(i=0;i<3;i++){
		printf("%d\n",y[i]);
	}
	return 0;
}

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

using namespace std;

void inputData(vector<string>& data_set) {
	string buffer;
	while(getline(std::cin,buffer))
		data_set.push_back(buffer);
}

template <class T>
T convertStringToNumber(const string& str) {
	stringstream ss;
	T ret;

	ss << str;
	ss >> ret;

	return ret;
}


void doAllProcess() {
	vector<string> buffer;
	vector<int> data_set;

	inputData(buffer);

	data_set.resize(buffer.size());
	for(int i = 0; i < buffer.size(); ++i)
		data_set[i] = convertStringToNumber<int>(buffer[i]);

	sort(data_set.begin(), data_set.end(), [](int n1, int n2){ return n1>=n2; });

	std::cout << data_set[0] << std::endl;
	std::cout << data_set[1] << std::endl;
	std::cout << data_set[2] << std::endl;
}


int main() {
	doAllProcess();

	return 0;
}

C++: arr = []
for cnt in 0...10
  arr.push(gets.chomp.to_i())
end

arr.sort!.reverse!

for cnt in 0...3
  puts(arr[cnt])
end