Go: package main

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

var rdr = bufio.NewReaderSize(os.Stdin, 1000000)

func readLine() string {
	buf := make([]byte, 0, 1000000)
	for {
		l, p, e := rdr.ReadLine()
		if e != nil {
			panic(e)
		}
		buf = append(buf, l...)
		if !p {
			break
		}
	}
	return string(buf)
}

func toInt(str string) int {
	n, _ := strconv.Atoi(str)
	return n
}

func main() {
	lst := make([]int, 0)
	for i := 0; i < 10; i++ {
		lst = append(lst, toInt(readLine()))
	}
	sort.Ints(lst)
	for i := 9; i > 6; i-- {
		fmt.Println(lst[i])
	}
}

C++: #include <cstdio>

int main(){

  int h[10],i,a=0,b=0,c=0;

  for(i=1;i<=10;i++){

    scanf("%d",&h[i]);

    if (a < h[i]){
      c=b; b=a; a=h[i];
    }else if (b < h[i]){
      c=b; b=h[i];
    }else if (c < h[i]){
      c=h[i];
    }
  }
  printf("%d\n%d\n%d\n", a, b, c);
  return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<functional>
using namespace std;
int main(){
    int mountains[10];
    for(int i=0;i<10;++i){
        cin >> mountains[i];
    }
    sort(mountains, mountains+10, greater<int>());
    for(int i=0;i<3;++i){
        cout << mountains[i] << endl;
    }
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  int n;
  vector<int>vec;
  for(int i=0;i<10;i++){
    cin>>n;
    vec.push_back(n);
  }
  sort(vec.begin(),vec.end(),greater<int>());
  for(int i=0;i<3;i++){
    cout<<vec[i]<<'\n';
  }
  return(0);
}

C++: #include <iostream>

using namespace std;

int main(){
	int h[2];
	int i,j;
	for(i=0;i<=2;i++) h[1] = 0;
	for(i=0;i<=9;i++){
		cin>>j;
		if(j >= h[0]) { h[1] = h[0]; h[0] = j;}
		else if (j >= h[1]) { h[2] = h[1];  h[1] = j;}
		else if (j >= h[2]) h[2] = j;
		else continue;
	}
	for(i=0;i<=2;i++){
		cout<<h[i]<<endl;
	}
	cin>>j;
	return 0;
}

C++: #include<iostream>
using namespace std;
int main() {
	unsigned short int  mountain[10];
	for (int i = 0; i < 10; i++) {
		cin >> mountain[i];
	}

	unsigned short int  taller[3];
	unsigned short int  a, b, c;

	a = mountain[0];
	b = mountain[1];
	c = mountain[2];

	for (int y = 3; y <= 9; y++) {
		if (a <= b) {
			if (a <= c) {
				if (a < mountain[y]) {
					a = mountain[y];
				}
			}
			else {
				if (c < mountain[y]) {
					c = mountain[y];
				}
			}
		}
		else if (b <= c)
		{
			if (b < mountain[y]) {
				b = mountain[y];
			}
		}
	}

	//biggest->taller[0],bigger->taller[1],taller[2]
	{
		if (a >= b&&a >= c)
		{
			taller[0] = a;
			if (b >= c)
			{
				taller[1] = b;
				taller[2] = c;
			}
			else {
				taller[1] = c;
				taller[2] = b;
			}
		}
		if (b >= a&&b >= c)
		{
			taller[0] = b;
			if (a >= c)
			{
				taller[1] = a;
				taller[2] = c;
			}
			else {
				taller[1] = c;
				taller[2] = a;
			}
		}
		if (c >= b&&c >= a)
		{
			taller[0] = c;
			if (b >= a)
			{
				taller[1] = b;
				taller[2] = a;
			}
			else {
				taller[1] = a;
				taller[2] = b;
			}
		}
	}

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

	char c_;
	cin >> c_;

	return 0;
}

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

int main(){
    vector<int> v(10);
    int index = 0;  
    for(int i = 0; i< 10; i++){
        cin >> v[i];
    }
    cout << *max_element(v.begin(),v.end()) << endl;
    index = distance(v.begin(),max_element(v.begin(),v.end()));
    v[index] = 0;
    cout << *max_element(v.begin(),v.end()) << endl;
    index = distance(v.begin(),max_element(v.begin(),v.end()));
    v[index] = 0;
    cout << *max_element(v.begin(),v.end()) << endl;
    index = distance(v.begin(),max_element(v.begin(),v.end()));
    v[index] = 0;
}

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

int main(){

	int mt_list[10];

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

	int high[3] = { 0, 0, 0 };
	for (int h = 0; h<3; h++){
		int tmp = 0;
		for (int i = 0; i<10; i++){
			if (high[h] <= mt_list[i]){
				high[h] = mt_list[i];
				tmp = i;
			}
		}
		high[h] = mt_list[tmp];
		mt_list[tmp] = 0;
	}
	cout << endl;
	for (int i = 0; i<3; i++){
		cout << high[i] << endl;
	}

	return 0;
}

C++: #include <iostream>

using namespace std;

int main()
{
    int first = 0;
    int second = 0;
    int third = 0;
    
    for (int i = 0; i < 10; ++i) {
        int number;
        cin >> number;
        if (number <= third) continue;
        third = number;
        if (third <= second) continue;
        swap(second, third);
        if (second <= third) continue;
        swap(first, second);
    }
    cout << first << endl
         << second << endl
         << third << endl;
    return 0;
}

C++: #include<stdio.h>

	int main(){
		
		int i,n,x[10],v,w,a,b,c;
		a=0;
		b=0;
		c=0;
		
		for(i=0;i<10;i++){
			x[i]=0;
		}
		
		
		for(i=0;i<10;i++){
			scanf("%d",&n);
			x[i]=n;
		}
		
		for(i=0;i<10;i++){
			if(a<x[i]){
				a=x[i];
				v=i;
			}
		}
		
		for(i=0;i<10;i++){
			if(i!=v){
				if(b<x[i]){
					b=x[i];
					w=i;
				}
			}
		}
		
		for(i=0;i<10;i++){
			if(i!=v){
				if(i!=w){
					if(c<x[i]){
						c=x[i];
					}
				}
			}
		}
		
		printf("%d\n%d\n%d\n",a,b,c);
		
	return 0;
}

C++: #include<stdio.h>

int main(){
	int i;
	int c,a[3];
	c=0;
	for(i=0;i<10;i++){
		scanf("%d",c);
		if(c>a[0]){
			a[2]=a[1];
			a[1]=a[0];
			a[0]=c;
		}else if(c>a[1]){
			a[2]=a[1];
			a[1]=c;
		}else if(c>a[2]){
			a[2]=c;
		}
	}

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

C++: #include<iostream>
 using namespace std;
int main(){
int input[10];
int first;
int second;
int third;
int i=0
for(;i<10;i++){
cin>>input[i];
if(first<input){first = input[i];}else 
if(second<input){second = input[i];}else 
if(third<input){third = input[i];}
}
cout<<first<<endl;cout<<second<<endl;cout<<third<<endl;
return 0;

}

C++: #include <cstdio>
#include <functional>
#include <algorithm>

using namespace std;

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

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

  sort(heights, heights + 10, greater<int>());

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

  return 0;
}

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

int main(){
	bool 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[l] < 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<stdio.h>
#include<algorithm>
  
int main() {
    int m[10];
 
    for (int i = 0; i < 10; i++)scanf("%d",%m[i]);
 
    stable_sort(m, m + 10);
 
    for (int i = 9; i > 6; i--)printf("%d\n",&m[i]);
 
    return 0;
}

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

int main()
{
    int A[10];
       
    for (int i=1; i<=10; i++)
    {
        cout << "height of mountain " << i;
        cin >> A[i];
    }
    
    sort (A, A+10);
    reverse(A, A+10);
    
    for (int e=1; e<=3; e++)
    {
        cout << "height of the" << e << "st mountain" << A[e] << endl;
    }

    return 0; 
}

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

int main(){
	std::vector<int> o;
	for(int i=1;i<=10;i++)int in=0,o.push_back(in);
	std::sort(o.begin(),o.end());
	std::cout<<o[7]<<std::endl<<o[8]<<std::endl<<o[9]<<std::endl;
}