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>

using namespace std;

int main()
{
	int mount_high_inputs[10];
	int idx;

	for (int i = 0; i < 10; i++){
		cin >> mount_high_inputs[i];
		/* ?????????????????? */
		for (int j = i; j > 0; j--){
			if (mount_high_inputs[j-1] < mount_high_inputs[j]){
				int tmp = mount_high_inputs[j-1];
				mount_high_inputs[j-1] = mount_high_inputs[j];
				mount_high_inputs[j] = tmp;
			}
			else{
				break;
			}
		}

	}

	for (int i = 0; i < 3; i++){
		cout << mount_high_inputs[i] << 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<3;i++)
    {
       cout<<data[i]<<endl;
    }

    return 0;
}

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

using namespace std;

int main(void) {
	int array[10];
	for(int i = 0; i < 10; i++)
		scanf("%d", &array[i]);
	sort(array, array + 10, greater<int>());
	for(int i = 0; i < 3; i++)
		printf("%d\n", array[i]);
	return 0;
}

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

int main(void){

	int n=10, h1=0, h2=0, h3=0, h0;
	for (int i=0; i<n; i++){
		cin>>h0;
		if (h0>h1) swap(h0, h1);
		if (h0>h2) swap(h0, h2);
		if (h0>h3) swap(h0, h3);
	}
	cout<<h1<<endl;
	cout<<h2<<endl;
	cout<<h3<<endl;

	return 0;
}

C++: #include <stdio.h>
 int main( void ){   
    int m_Higher[10];  
    for( int i = 0;i < 10;i++ ) scanf( "%d",&m_Higher[i] );   
    bool Flg  = false;
    while( true ) {
        for( int i = 0;i < 10 - 1;i++ ){
            if( m_Higher[i] < m_Higher[i+1] ){
                int buf = m_Higher[i];
                m_Higher[i] = m_Higher[i+1];
                m_Higher[i+1] = buf;
                Flg = true;
            }
        }
        if( !Flg ) break;
        Flg = false;
    }
     for( int i = 0;i < 3;i++ ) printf( "%d\n",m_Higher[i] );    
    return 0;
}

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

int main() {
  int array[10], tmp;

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

  for (int j = 0; j < 10; j++) {
    for (int k = 0; k < 9; k++) {
      if (array[k] < array[k+1]) {
        tmp = array[k];
        array[k] = array[k+1];
        array[k+1] = tmp;
      }
    }
  }

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

  return 0;
}

C++: #include<iostream>
using namespace std;
main()
{ int x[10],t[3];
  int  s=0;
  for(int i=0;i<0;i++){
    cin>>x[i];
  }

  for(int k=0;k<3;k++){
    for(int j=0;j<10;j++){
      if(t[k]<x[j]){
        s=t[k];
        t[k]=x[j];
        x[j]=s;
       }
     }
  }
  for(int e=0;e<3;e++){
    cout<<t[e]<<endl;
  }
return 0;
}

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

//0001
int main(){
	list<int> height_list(10);

	for(int i=0; i<10; ++i){
		int height;
		cin >> height;
		height_list.push_back(height);
	}

	height_list.sort(greater<int>());
	list<int>::iterator ite = height_list.begin();
	for(int i=0; i<3; ++i){
		cout << *ite++ << endl;
	}
	return 0;

}

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

int main(){

  int x,a=0,b=0,c=0,q=0,p=0;

  for(int i=0;i<10;i++){
   cin >> x;
  
   if(x>c){
    if(x>b){
      if(x>a){
	q=a;
	a=x;
      }
      if(q!=0){
	p=b;
	b=q;
      }else{
	p=b;
	b=x;
      }
    }
    if(p!=0){
      c=p;
    }else{
      c=x;
    }
   }
   p=0;
   q=0;
  }
      
  cout << a << endl;
  cout << b << endl;
  cout << c << endl;
	  
	  





  return 0;
}

C++: #include <iostream>
#include <array>
#include <algorithm>
 
int main(void) {
    std::array<u_int, 10> heights;
    //??\???
    for (u_int i = 0; i < 10; ++i) {
        std::cin >> heights[i];
    }
    //?????????
    std::sort(heights.begin(), heights.end(), std::greater<u_int>());
    //??????
    for (u_int i = 0; i < 3; ++i) {
        std::cout << heights[i] << std::endl;
    }
    return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

#define FOR(i,l,r) for(int i = (l);i < (r);i++)
#define ALL(x) (x).begin(),(x).end()
template<typename T> bool chmax(T& a,const T& b){return a < b ? (a = b,true) : false;}
template<typename T> bool chmin(T& a,const T& b){return b < a ? (a = b,true) : false;}
typedef long long ll;

const int N = 10;

int main()
{
	vector<int> A(N);
	FOR(i,0,N){
		cin >> A [i];
	}
	sort(ALL(A),greater<int>());

	FOR(i,0,3){
		cout << A [i] << endl;
	}

	return 0;
}

C++: #include <iostream>
using namespace std;
int M[10];

void bubbleSort(int M[], int N) {
	int flag = 1;
	while (flag) {
		flag = 0;
		for (int i = N - 1; i > 0; --i) {
			if (M[i - 1] > M[i]) {
				int t = M[i];
				M[i] = M[i - 1];
				M[i - 1] = t;
				flag = 1;
			}
		}
	}
}

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

	bubbleSort(M, 10);

	for (int i = 1; i < 4; ++i) {
		cout << M[10 - i] << " ";
	}
	cout << endl;
}

C++: #include<stdio.h>
        
int main(void){
    /* 宣言と初期化 */
    int hai[10];
    int id[2]
    int i;
    int temp2nd;
    int temp3rd;
    int tempmax;
        
for(i=0;i<10;i++)
{
scanf("%d",&hai[i]);
}
    /* 代入 */
    temp2nd=hai[0];
    tempmax=hai[0];
    temp3rd=hai[0];  
    /* 計算 */
    for(i=0;i<10;i++){
        /* 最大値求める */
        if(hai[i]>tempmax)
       {tempmax=hai[i];id[0]=i;}
    }
    for(i=0;i<10;i++){
        /*2番目求める */
        if(hai[i]<tempmax&&hai[i]>temp2nd&& i=! id[0])
        {temp2nd=hai[i];id[1]=i;}
    }    
    for(i=0;i<10;i++){
        /* 3番目求める */
        if(hai[i]>temp3rd&&hai[i]<temp2nd && i =! id[1] && i =! id[0])
       {temp3rd=hai[i];}
    }
        
    /* 表示 */
    printf("最も高い山の高さ　%d\n",tempmax);
    printf("２番目に高い山の高さ　%d\n",temp2nd);
    printf("３番目に高い山の高さ　%d\n",temp3rd);
        
    return 0;
}

C++: #include <bits/stdc++.h>
#define IN(a) scanf("%d",&a);
#define REPT(i,n) for (int i=1;i<=(n);i++)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RER(i,n,m) for (int i=m;i>(m-n);i--)
#define BR break;

using namespace std;

int main(){
	int a[10];

	REP(i,10)
	{
		IN(a[i]);
	}
	sort(a,a+10);

	RER(i,3,9){
		printf("%d\n",a[i]);
	}

	return 0;
 }

C++: #include<iostream>
using namespace std;
int main(){
  int x, buf, i, j;
  int top[3];
  for(i = 0; i < 3; i++)
    top[i] = 0;

  for(i = 0; i < 10; i++){
    cin >> x;
    if(x > top[2]){
      top[2] = x;
      j = 2;
      while(j > 0){
        if(top[j-1] <top[j]){
          buf = top[j-1];
          top[j-1] = top[j];
          top[j] = buf;
          j--;
        }else{
          break;
        }
      }
    }
  }

  for(i = 0; i<3; i++)
    cout << top[i] << '\n';

  return 0;
}

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

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

int main(){
    int arr[10];
    for(int i=0; i<10; i++){
        cin>>arr[i];
    }
    sort(arr,arr+10);
    cout<<arr[9]<<endl;
    cout<<arr[8]<<endl;
    cout<<arr[7]<<endl;
}