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 <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;
	}
}

C++: #include <algorithm>
#include <bitset>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#define FOR(x,a,b) for(int x=a;x<b;x++)
#define REP(x,b) for(int x=0;x<b;x++)
#define FORSIZE(x,A) for(int x=0;x<A.size();x++)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define SORT(x) sort(x.begin(),x.end())
#define RSORT(x) sort(x.rbegin(),x.rend())
#define rsort(x,n) sort(x, x+n, greater<int>())
#define REV(x) reverse(x.begin(),x.end())
using namespace std;
typedef long long ll;
inline int toInt(std::string s) {int v; std::istringstream sin(s);sin>>v;return v;}
template<class T> inline std::string toString(T x) {std::ostringstream sout;sout<<x;return sout.str();}

int main( int argc, const char* argv[] )
{
    vector<int> heights(10);
    REP(i, 10) cin >> heights[i];
    RSORT(heights);
    REP(i, 3) cout << heights[i] << endl;
    return 0;
}

C++: #include<iostream>
using namespace std;
int main()
{
	int a[10];
	
	for(int i=0; i<10; i++){
		cin>>a[i];
	}
	
	int T=0;
	for(int	j=1; j==0; j++;){
		T=0;
		for(int i=0; i<9; i++){
			if(a[i]<a[i+1]){
				int L;
				L=a[i];
				a[i]=a[i+1];
				a[i+1]=L;
				T=1;
			}
		}
		if(T=0) break;
	}
	
	for(int	i=0; i<3; i++){
		cout<<a[i]<<"\n";
	}
}

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


int main()
{
	int mou[10], m1=0, m2=0, m3=0,a1=0,a2=0;
	for (int i = 0;i < 10;i++)
		cin >> mou[i];

	for (int a = 0;a < 10;a++) {
		if (m1 < mou[a])
			m1 = mou[a];
	}
	for (int b = 0;b < 10;b++) {
		if (m1 == mou[b])
			a1++;
	}
	if (a1 == 2)
		m2 = m1;
	if (a1 > 2) {
		m2 = m1;
		m3 = m1;
	}
	
	for (int c = 0;c < 10;c++) {
		if (m2 < mou[c] && mou[c] < m1)
			m2 = mou[c];
	}
	for (int e = 0;e < 10;e++) {
		if (m2 == mou[e])
			a2++;
	}
	if (a2 > 2 && m1 != m2)
		m3 = m2;

	for (int d = 0;d < 10;d++) {
		if (m3 < mou[d] && mou[d] < m2)
			m3 = mou[d];
	}

	cout << m1 << endl << m2 << endl << m3 << endl;
    return 0;
}

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

int main(){
    
    int i;
    int max1, max2, max3;
    std::array <int, 10> hill;
    
    max2 = 0;
    max3 = 0;

    for (i = 0; i < 10; ++i) {
        std::cin >> hill.at(i);
        
        if (i == 0) max1 = hill.at(0);
        
        if (max1 < hill.at(i)) { 
            max2 = max1;                    
            max1 = hill.at(i);
        } else if (max2 < hill.at(i)) {
            max3 = max2;
            max2 = hill.at(i);
        } else if (max3 < hill.at(i)) max3 = hill.at(i);
        else {}
    }
    
    std::cout << max1 << std::endl << max2 << std::endl << max3 << std::endl;
    
    return 0;
}

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

int gunung[10];

int main()
{
	for(int a=0;a<10;a++)
	{
		scanf("%d",&gunung[a]);
	}
	sort(gunung,gunung+10);
	for(int a=9;a>6;a--)
	{
		printf("%d\n",gunung[a]);
	}
	return 0;
}

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