Go: package main

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

func main() {
        fp := os.Stdin
        scanner := bufio.NewScanner(fp)
        var lst [3]int

        for scanner.Scan() {
                num, _ := strconv.Atoi(scanner.Text())
                if lst[0] < num {
                        lst[2] = lst[1]
                        lst[1] = lst[0]
                        lst[0] = num
                } else if lst[1] < num {
                        lst[2] = lst[1]
                        lst[1] = num
                } else if lst[2] < num {
                        lst[2] = num
                }
        }

        for _, i := range lst {
                fmt.Printf("%d\n", i)
        }
}

C++: 
//include
//------------------------------------------
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <string>
#include <cstring>
#include <ctime>


using namespace std;

//conversion
//------------------------------------------
inline int toInt(string s) { int v; istringstream sin(s); sin >> v; return v; }
template<class T> inline string toString(T x) { ostringstream sout; sout << x; return sout.str(); }

//math
//-------------------------------------------
template<class T> inline T sqr(T x) { return x*x; }

//typedef
//------------------------------------------
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;

//container util
//------------------------------------------
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define EXISTch(s,c) ((((s).find_first_of(c)) != std::string::npos)? 1 : 0)//cがあれば1 if(1)
#define SORT(c) sort((c).begin(),(c).end())

//repetition
//------------------------------------------
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define rep(i,n)  FOR(i,0,n)
#define loop(n) FOR(i,0,n)
#define rrep(i,a,b) for(int i=(a);i>=(b);--i)
//constant
//--------------------------------------------
const double EPS = 1e-10;
const double PI = acos(-1.0);
const int INF = (int)1000000007;
const LL MOD = (LL)1000000007;//10^9+7
const LL INF2 = (LL)100000000000000000;//10^18

int main() {
	vector<int> h(10);

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

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

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

	return 0;
}

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

int main(){
    int tinggi[10000];
    int i, j, temp;

    for(i=0; i<10; i++){
        cin>>tinggi[i];
    }
    for(j=0; j<10; j++){
            for(i=1; i<10; i++){
                if(tinggi[i] > tinggi[i-1]){
                    temp = tinggi[i];
                    tinggi[i] = tinggi[i-1];
                    tinggi[i-1] = temp;
                }
        }
    }
    for(i=0; i<3; i++){
        cout<<tinggi[i]<<endl;
    }

    return 0;
}

C++: #include<cstdio>
#include<algorithm>
 
using namespace std;
 
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 <vector>
#include <algorithm>

int main(){

	int mt[10];
	int i;
	
	for(i=0;i<10;i++){
		std::cin >> mt[i];
	}
	
	std::sort(mt,mt+10,std::greater<int>());
	
	for(i=0;i<3;i++){
		std::cout << mt[i] << std::endl;
	}
}

C++: #include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main(){
	for (int i = 0; i < 10;i++){
		cin >> a[i];
	}
	sort(a[0], a[9]);
	cout << a[0] << a[1] << a[2] << endl;
	return 0;
}

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

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

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

int main(){
	int suchi,high=0,middle=0,low=0,i,flag=0,a,b,c;
	
	for(i=0;i<10;i++){
		cin>>suchi;
			
		if(flag==0){
			high = suchi;
			flag++;
			}
			
		else{
			if(suchi>low&&suchi<middle)
				low = suchi;
			
			else if(suchi>middle&&suchi<high){
				low = middle;
				middle = suchi;
			}
			
			else if(suchi>high){
				low = middle;
				middle = high;
				high = suchi;
				}
				
			}
	}
	
	cout<<high<<endl;
	cout<<middle<<endl;
	cout<<low<<endl;
	
	return 0;
}

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

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

	for( int i=0; i<10; i++ ){
		for( int j=9; j>=i; j-- ){
			if( data[j-1] < data[j] ){
				int tmp = data[j-1];
				data[j-1] = data[j];
				data[j] = tmp;
			}
		}
	}

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

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

using namespace std;

int main (void) {
	int mt[10], t = 10;
	
	for (int i = 0; i < t; i ++) {
		cin >> mt[i];
	}
	
	for (int i = 0; i < t; i ++) {
		for (int j = 0; j < i; j ++) {
			if (mt[i] > mt[j]) {
				swap(mt[i], mt[j]);
			}
		}
	}
	
	for (int i = 0; i < 3; i ++) {
		cout << mt[i] << endl;
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
  int m[10];
  int f=0;
  int s=0;
  int t=0;
  for(int i = 0; i < 10 ; i ++ ){
    cin>>m[i];
  }
  for(int i = 0; i < 10 ; i ++ ){
    if(m[f]<m[i])
      f=i;
  }
  //  cout<<"max mountain tall is "<<m[f]<<endl;
  // cout<<"number is"<<f<<endl;
  if(f==0)
    s=1;

  for( int i=0; i<10 ;i++){
    if(m[s]<m[i] && i!=f)
      s=i;
  }
  //cout<<"secount tall mountain is "<<m[s]<<endl;
  if(f==0 || s==0)
    t=1;
  if(f==1 || s==1)
    t=2;
  for(int i=0;i<10;i++){
    if(m[t]<m[i] && i!=f && i!=s)
      t=i;
  }
  // cout<<"third tall mountain is"<<m[t]<<endl;
  //cout<<"the number is "<<t<<endl;
  cout<<m[f]<<endl;
  cout<<m[s]<<endl;
  cout<<m[t]<<endl;






  return 0;
}

C++: #include <stdio.h>

#include <stddef.h>
#include <vector>
#include <stdlib.h>
#include <algorithm>
#include <pwd.h>
#include <functional>
int main(void)
{
    int height[10];
    for(int i=0;i<10;i++)
    {
        scanf("%d",height+i);
    }
    std::vector<int> h(height,height+10);
    int max[3]={height[0],height[1],height[2]};
    std::sort(h.begin(),h.end(),std::greater<int>());
    for(int i=0;i<3;i++)printf("%d\n",h[i]);
    return 0;
}

C++: #include <bits/stdc++.h>
#define int long long
using namespace std;
const int INF = 1e9 + 7, MOD = 1e9 + 7;
const long long LINF = 1e18;
const int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
signed main() {
	int a[10];
	for (int i = 0; i < 10; i++) {
		cin >> a[i];
	}
	sort(a, a + 10, greater<int>());
	cout << a[0] << endl << a[1] << endl << a[2] << endl;
	return 0;
}

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

template<typename T, size_t N>
void sort_array(std::array<T, N>& array);

int main()
{
	std::array<int, 10> input;
	for (unsigned long i = 0; i < input.size(); ++i)
	{
		std::cin >> input[i];
	}

	sort_array<int,input.size()>(input);
    
    std::cout << input[0] << std::endl
              << input[1] << std::endl
              << input[2] << std::endl;
	return 0;
}

template<typename T, size_t N>
void sort_array(std::array<T, N>& array)
{
	int temp = 0;
	for (unsigned long i = 0; i < array.size(); ++i)
	{
		temp = array[i];
		for (unsigned long j = i; j < array.size(); ++j)
		{
			if (temp < array[j])
			{
				std::swap(array[j], temp);
			}
		}
		array[i] = temp;
	}
}