Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextInt() int {
	scanner.Scan()
	i, e := strconv.Atoi(scanner.Text())
	if e != nil {
		panic(e)
	}
	return i
}
func main() {
	heighs := make([]int, 10)
	for i := range heighs {
		heighs[i] = nextInt()
	}
	sort.Sort(sort.Reverse(sort.IntSlice(heighs)))
	for i := 0; i < 3; i++ {
		fmt.Println(heighs[i])
	}
}

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

#define BOGO 10

using namespace std;

int main()
{
	int arr[BOGO];
	bool found;
	int j;
	srand(static_cast<unsigned int>(time(NULL)));
	
	for(int i = 0; i < BOGO; i++){
		cin >> arr[i];
	}
	
	for(;;){
		
		/**
		for(int j = 0; j < BOGO; j++){
			cout << arr[j] << flush;
		}
		cout << endl;
		/**/
		
		found = true;
		for(j = 0; j < BOGO-1; j++){
			if(arr[j] > arr[j+1]){
				found = false;
				break;
			}
		}
		
		if(found){
			break;
		}
		random_shuffle(arr, arr+BOGO);
	}
	cout << arr[9] << "\n" << arr[8] << "\n" << arr[7] << endl;
}

C++: 
#include<stdio.h>

int main()
{
	int high[10] = {1819,2003,876,2876,1723,1673,3776,2848,1592,922};
	int cases;
	
	for(int i=0;i<10;i++)
	{
		for(int j=i;j<10;j++)
		{
			if(high[i] > high[j])
			{
				cases = high[i];
				high[i] = high[j];
				high[j] = cases;
			}
		}
	}
	
	printf("%d",high[0]);
	printf("%d",high[1]);
	printf("%d",high[2]);
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main()
{
    int a=0,b=0,c=0,t=0,n=10;
    while(n--)
    {
              cin>>t;
              if(t>c)
              {
                     if(t>b)
                     {
                            if(t>a)
                            {
                                   c=b;
                                   b=a;
                                   a=t;
                                   
                            }
                            else
                            {
                                c=b;
                                b=t;
                                }
                     }
				  else
				 {
					 c=t;
				  }
			  }
      }
              cout<<a<<endl<<b<<endl<<c<<endl;              
			  cin>>n;
   return 0;
    }

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

int main(){

	int i;
	int height[10];

	for (i = 0; i < 10; i++){
		do{
			cin >> height[i];
		} while (height[i] < 0 || height[i] > 10000);
	}

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

	for (i = 0; i < 3; i++){
		cout << height[i] << "\n";
	}

	return 0;
}

C++: #include<iostream>

using namespace std;
int main()
{
int mount[10];
for(int i=0;i<10;i++)
{
cin >> mount[i];
}
int max[3];
int count[2];
max[0] = mount[0];
max[1] = mount[0];
max[2] = mount[0];
for(int i=1;i<10;i++)
{
if(mount[i]>=max[0])
{
max[0] = mount[i];
count[0]=i;
}
}
for(int i=1;i<10;i++)
{
if(mount[i]>=max[1]&&i!=count[0])
{
max[1] = mount[i];
count[1]=i;
}
}
for(int i=1;i<10;i++)
{
if(mount[i]>=max[2]&&count[0]!=i&&count[1]!=i)
{
max[2] = mount[i];
}
}
cout << max[0] << endl;
cout << max[1] << endl;
cout << max[2] << endl;
return 0;
}

C++: #include <iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<queue>
#include<stack>
#include<stdio.h>
#include<vector>
#include<set>
#include<map>
#include<iomanip>
#define rep(i,n) for(int i=0;i<n;i++)
typedef int long long ll;

using namespace std;
int main(){

    vector<int> v(10);
    rep(i,10){
        int x;
        cin>>x;
        v[i]=x;
    }
    sort(v.begin(),v.end(),greater<int>());
    cout<<v[0]<<endl<<v[1]<<endl<<v[2];





return 0;
}

C++: #include <bits/stdc++.h>  // g++ -std=c++14 -o a a.cpp

using namespace std;

typedef pair<int, int> P;
typedef long long ll;
#define rep(i, n) for(int i = 0; i < (n); i++)
#define repto(i, n) for(int i = 0; i <= (n); i++)
#define all(c) (c).begin(), (c).end()
#define uniq(c) c.erase(unique(all(c)), (c).end()) // ユニークなvectorにする。連続した値を除去して切り出す。
#define _1 first
#define _2 second
#define pb push_back
#define INF 1145141919
#define MOD 1000000007
#define DEBUG(x) cout << #x << ": " << x << endl;

__attribute__((constructor))
void initial() {
  cin.tie(0);
  ios::sync_with_stdio(false);
}

int main() {
  vector<int> M;
  rep(i, 10) {
    int mi;
    cin >> mi;
    M.pb(mi);
  }
  sort(all(M));
  cout << M[9] << endl;
  cout << M[8] << endl;
  cout << M[7] << endl;
}

C++: #include <iostream>
#include <algorithm>
#include <stack>
#include <cstdio>
using namespace std;
// int a[10];
// bool ans;
// void dfs(int i,int r,int l){
// 	if(i==10)ans=1;
// 	if(ans)return;
// 	if(a[i]<r&&a[i]<l)return;
// 	if(r<a[i])dfs(i+1,a[i],l);
// 	if(l<a[i])dfs(i+1,r,a[i]);

// }
// int main(){
// 	int t;
// 	cin>>t;
// 	while(t--){
// 		ans=0;
// 		for(int i=0;i<10;i++)cin>>a[i];
// 		dfs(0,0,0);
// 		if(ans)cout<<"YES"<<endl;
// 		else cout<<"NO"<<endl;
// 	}
// }

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

C++: #include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int i, arr[100];
for (i=0;i<10;i++)
scanf ("%d", &arr[i]);
sort (arr, arr+10);
printf ("%d\n", a[9]);
printf ("%d\n", a[8]);
printf ("%d\n", a[7]);
return 0;
}

C++: #include <iostream>

using namespace std;

int main(void)
{
	int input[10];

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


	for(int i = 3; i < 10; i++){
		for(int j = 0; j < 3; j++){
			if(input[i] > input[j]){
				input[j] = input[i];
				break;
			}
		}
	}

	sort(input, input+3, less<int>());

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


	return 0;
}

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

int main()
{
	int high[10],copy;

	for(int i=0;i<10;i++)
		cin>>high[i];

	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++)
			if(high[i]>high[j])
			{
				copy=high[i];
				high[i]=high[j];
				high[j]=copy;
			}
	cout<<high[0]<<endl<<high[1]<<endl<<high[2]<<endl;
}

C++: #include<iostream>
#include<algorithm>
#include <vector>
#include<cmath>
#include<iomanip>
using namespace std;
typedef long long int lont;
int main() {
	vector<int>veca(10);
	for (int ia = 0; ia < 10; ia++) {
		cin >> veca.at(ia);
	}
	sort(veca.begin(), veca.end());
	reverse(veca.begin(), veca.end());
	for (int ib = 0; ib < 3; ib++) {
		cout << veca.at(ib) << endl;
	}
}

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

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

  sort(h, h+10);

  printf("%d\n%d\n%d\n",h[9],h[8],h[7]);
  return 0;
}

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

void swap(int *b, int *c)
{
    int tmp;
    tmp = *b;
    *c = *b;
    *b = tmp;
}

int main(void){

	int a[11],max1,max2,max3;

	for (int i=1; i<11; i++){
		while (true){ 
		cout << "山の高さ" << i << "（整数）" ;			
		cin >> a[i];
		if ((cin.good() == 1) && (a[i] >= 0) && (a[i] <= 10000)) {
			break;
		}
		}	
	}

	max1 = a[1];

	for (int i=2; i<11; i++){
		if (max1 < a[i]){
			swap(max1,a[i]);
		}
	}
	max2 = a[2];

	for (int i=3; i<11; i++){
		if (max2 < a[i]){
			swap(max2,a[i]);
		}
	}
	max3 = a[3];

	for (int i=4; i<11; i++){
		if (max3 < a[i]){
			swap(max3,a[i]);
		}
	}


		cout << max1 << endl;
		cout << max2 << endl;
		cout << max3 << endl;
		

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