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 <algorithm>
#include <functional>
#include <vector>
using namespace std;

int main()
{
	vector<int> data(10,0);
	
	for(int i=1;i<=10;i++) 
		cin >> data[i];
	
	sort(data.begin(),data.end(),greater<int>());
	
	for(int j=0;j<=2;j++)
		cout << data[j] << endl;
	
	return 0;
}

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

void exc( int& a, int& b ) {
    int buf;
    buf = a;
    a = b;
    b = buf;
}

int main() {
    int ns[10];
    int fst, scd, trd;
    for( int i = 0; i < 10; ++i ) {
        cin >> ns[i];
        if( i == 0 ) {
            fst = scd = trd = ns[ i ];
            continue;
        }
        if( ns[ i ] >= trd ) {
            trd = ns[ i ];
            if( trd > scd ) {
                exc( trd, scd );
                if( scd > fst ) {
                    exc( scd, fst );
                }
            }
        }
    }
    cout << fst << endl
         << scd << endl
         << trd << endl;
}

C++: #include <bits/stdc++.h>
using namespace std;
int main(){
  long long a[10];
  for(int i=0;i<10;i++){
    cin >> a[i];    
  }
  sort(a,a+10);
  reverse(a,a+10);
  for(int i=0;i<3;i++){
    cout << a[i] << endl;
  }
  return 0;
}

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

#define INPUTSIZE 10

int main() {
    int inputs[INPUTSIZE];
    for (int i = 0; i < INPUTSIZE; i++) cin >> inputs[i];

    sort(inputs, inputs + INPUTSIZE);

    for (int i = 1; i <= 3; i++) cout << inputs[INPUTSIZE - i] << endl;

    return 0;
}

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

int main(){

int i,j,h,temp;
int m[10];



//入力
for(i=0; i<10; i++){
   cin >> h;

   if(h >= 0 and h <= 10000){
       m[i]=h;
   }else{
   i--;
   }
}



//ソート
    for (i = 0; i < 9; i++) {
        for (j = 9; j > i; j--) {
            if (m[j - 1] > m[j]) {  
                temp = m[j];  
                m[j] = m[j - 1];
                m[j - 1] = temp;
            }
        }
    }
    
    
//出力
for (i = 9; i > 6; i--) {
   cout << m[i] << "\n";
}

    return 0;
}

C++: #include <stdio.h>
main(){
  int a[10],i,max,m2,m3;
  i=0;
  while(i<10){
    printf("height of mountain %d ",i+1);
    scanf("%d",&a[i]);
    i++;
  }
  max=a[0];
  i=0;
  while(i<10){
    if(a[i]>max) max=a[i];
  i++;
  }

if(a[0]==max) m2=a[1];
 else m2=a[0];
i=0;

  while(i<10){
    if(a[i]>m2&&a[i]!=max) m2=a[i];
    i++;
  }

if(a[0]!=max&&a[0]!=m2) m3=a[0];
 else if(a[1]!=max&&a[1]!=m2) m3=a[1];
 else if(a[2]!=max&&a[2]!=m2) m3=a[2];
 else m3=a[3];
i=0;

  while(i<10){
    if(a[i]>m3&&a[i]!=max&&a[i]!=m2) m3=a[i];
    i++;
  }

printf("height of the 1st mountain %d\nheight of the 2nd mountain d\nheight of the 3rd mountain &d\n",max,m2,m3);
return 0; 
}

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

int main(){
    vector<int> v(9);
    for(int i = 0; i< 10; i++){
        cin >> v[i];
    }
   sort(v.begin(),v.end());
   cout << v[0] << endl;
   cout << v[1] << endl;
   cout << v[2] << endl;
}

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

int main(){
	std::vector<int> h(10);
	for(int i=0; i<10; i++)
		std::cin >> h[i];
	std::sort(h.rbegin(), h.rend());
	for(int i=0; i<3; i++)
		std::cout << h[i] << std::endl;
	return 0;
}

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

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

int main() {
	int temp; int count = 0;
	multiset<int, greater<int>> mul;
	while (cin >> temp) mul.insert(temp);
	for (auto itr : mul) {
		cout << itr << endl; count++;
		if (count == 3) break;
	}
	return 0;
}

C++: #include<stdio.h>

int main(void){
  // double data = 0.0123;
  //printf("%f %e",data,data);
  int data[10],i,j,k;
  for(i=0;i<10;i++)
    scanf("%d",&data[i]);
  for(i=0;i<10;i++){
    for(j=i+1;j<10;j++){
      if(data[i] < data[j]){
	k =data[i];
	data[i] = data[j];
	data[j] =k;
	  }
    }
  }
  for(i=0;i<3;i++)
    printf("%d\n",data[i]);
}

C++: A=[]
for i in range(10):
	A.append(int(input()))
A.sort()
A.reverse()
for i in range(3):
	print(A[i])

C++: #include<stdio.h>
int main(void)
{
	int a, b, max = 0, max2 = 0, max3 = 0;
	for (a = 1; a <= 10; a++) {
		scanf("%d", &b);
		if (b>max) {
			max = b;
		}
		else if (b>max2) {
			max2 = b;
		}
		else if (b>max3) {
			max3 = b;
		}
	}
	printf("%d\n %d\n %d\n", max, max2, max3);
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0; i<(n); i++)
#define REP2(i,x,n) for(int i=x; i<(n); i++) 
#define ALL(n) (n).begin,(n).end
/*???????±±?????????3?????????*/
int main()
{
    vector<int> vc;
    int N;
    while( cin >> N )
    {
        vc.push_back( N );
    }
    sort( vc.begin(), vc.end(), greater<int>() );
    REP( i, 3 )
    {
        cout << vc[ i ] << endl;
    }
    return 0;
}

C++: #include<stdio.h>

int main(void){

	int h[10]={1819,2003,876,2840,1723,
		           1673,3776,2848,1592,922};
	
	int i,j,t;
	for(i=0;i<9;i++)
	{
		for(j=i;j<10;j++)
		{
			if(h[i]<h[j])
			{
			   t=h[i];
			   h[i]=h[j];
			   h[j]=t;
			}
		}
	}
	for(i=0;i<3;i++)
	{
		printf("%d\n",h[i]);
	}


	return 0;
}

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

int main(){
    int temp;
    int key=-1;
    int data[3]={0};
    for(int i=0;i<10;i++){
        cin>>temp;
        for(int j=0;j<3;j++){
            if(temp>data[j])
            key=j;
        }
        if(key>=0){
        if(key>=1)
        for(int i=0;i<key;i++){
            data[i]=data[i+1];
        }
            data[key]=temp;
            key=-1;
        }
    }
    for(int i=2;i>-1;i--){
        cout<<data[i]<<endl;
    }
        return 0;
}

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

int main(){
	//int a;
	int M_h[10];
	for(int i=0;i<10;++i){
		cin>>M_h[i];
	}
	sort(M_h,M_h+10);
	for(int i=9;i>=7;--i){
		cout<<M_h[i]<<endl;
	}
	//cin>>a;
    return 0;
}

C++: #import<cstdio>
#import<deque>
#import<algorithm>
using namespace std;main(){int n,i;deque<int> h;for(;~scanf("%d",&n);)h.push_back(n);sort(h.begin(),h.end());for(i=9;i>6;i--)printf("%d\n",h[i]);}

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

int main(){
	int a=0,b=0,c=0,x;

	for(int i=0;i<=9;i++){
		cin >> x;

		if(x>=a){
			c=b;
			b=a;
			a=x;
		}else if(x>=b){
			c=b;
			b=x;
		}else if(x>=c){
			c=x;
		}
	}

	cout << a << endl;
	cout << b << endl;
	cout << c << endl;

	return 0;
}

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

int main()
{
    int h;
    int max1 = 0, max2 = 0, max3 = 0;
    while (cin >> h)
    {
	if (max1 <= h)
	{
	    max3 = max2; max2 = max1; max1 = h;
	}
	else if (max2 <= h)
	{
	    max3 = max2; max2 = h;
	}
	else if (max3 <= h)
	{
	    max3 = h;
	}
    }
    cout << max1 << endl;
    cout << max2 << endl;
    cout << max3 << endl;
    return 0;
}

C++: #include<iostream>
using namespace std;
int a[20];

void insert(int a[])
    {
        int i,j,key;
        for(j=2;j<=10;j++)
        {
            key=a[j];
            i=j-1;
            while(i>0&&a[i]>key)
            {
                a[i+1]=a[i];
                i=i-1;
            }
            a[i+1]=key;
        }
    }
int main()
{
    int i;
    for(i=1;i<=10;i++)
    {
        cin>>a[i];
    }
    insert(a);
    for(i=10;i>=8;i--)
    {
        cout<<a[i]<<endl;
    }
    return 0;
}