Go: package main

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

var maxint = 10000
var scanner = bufio.NewScanner(os.Stdin)

func nextInt() (int, error) {
	scanner.Scan()
	return strconv.Atoi(scanner.Text())
}

func main() {
	scanner.Split(bufio.ScanWords)
	arr := make([]int, 10)
	for i := range arr {
		n, _ := nextInt()
		arr[i] = n
	}

	sort.Slice(arr, func(i, j int) bool {
		return arr[i] >= arr[j]
	})

	arrStr := fmt.Sprintf("%+v", arr[0:3])
	arrStr = arrStr[1:(len(arrStr) - 1)]
	arrStr = strings.Replace(arrStr, " ", "\n", -1)
	fmt.Println(arrStr)
}

C++: #include <cmath>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <map>
#include <numeric>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <deque>
#include <stack>
#include <bitset>
#include <functional>
#include <numeric>
#include <utility>
#include <iomanip>
#include <cstdio>
#include <cctype>
#include <queue>
#include <complex>
#include <climits>

typedef long long ll;

using namespace std;

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

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

	cout << h[0] << endl << h[1] << endl << h[2];

	return 0;
}

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

int Size = 10;

int main(void) {
    int height[Size] = {0};
    
    for(int i = 0; i < Size; ++i) {
        while(!(0 <= height[i] && height[i] <= 10000)) {
            cout << "No." << i + 1 << " : " << flush;
            cin >> height[i];
        }
    }
    sort(height, height + Size, greater<int>());
    
    for(int i = 0; i < 3; ++i) {
        cout << height[i] << endl;
    }
}

C++: #include <stdio.h>

int main(){
	int talls[10], max, banme;
	for(int i = 0; i < 10; i++) scanf("%d", &talls[i]);
	for(int i = 0; i < 3; i++){
		max = 0;
		for(int j = 0; j < 10; j++){
			if(max < talls[j]){
				max = talls[j];
				banme = j;
			}
		}
		printf("%d\n", max);
		talls[banme] = 0;
	}
	return 0;
}

C++: #include <algorithm>
#include<iostream>
#include<vector>
#include<deque>
#include<queue>
#include<list>
#include<stack>
#include<map>
#include<set>
#include<string>
#include <sstream>
#include<bitset>

#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<limits.h>

using namespace std;
const int INF = 0x7fffffff;

int gcd(int x,int y){
  int mi,ma;
  ma = max(x,y);
  mi = min(x,y);
  if(ma % mi == 0){
    return mi;
  }
  else{
    return gcd(mi,ma % mi);
  }
}

int main(){
  long ii,jj,kk;
  vector<int> a;

  int mnt[10];
  for(ii=0;ii<10;ii++){
    cin >> mnt[ii];
  }
  int sw;
  for(ii=0;ii<9;ii++){
    for(jj=ii+1;jj<10;jj++){
      if(mnt[ii] < mnt[jj]){
        sw = mnt[ii];
        mnt[ii] = mnt[jj];
        mnt[jj] = sw;
      }
    }
  }
  
  for(ii=0;ii<3;ii++){
    cout << mnt[ii] << endl;
  }
  return 0;
  
}

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

int a[3],n;

int main(){
  a[0] = 0;
  a[1] = 0;
  a[2] = 0;
  for(int i = 0; i < 10; i++){
    cin >> n;
    if(a[2] > n){
      break;
    }else{
      if(a[1] > n){
        a[2] = n;
      }else{
        if(a[0] > n){
          a[2] = a[1];
          a[1] = n;
        }else{
          a[2] = a[1];
          a[1] = a[0];
          a[0] = n;
        }
      }
    }
  }
  cout << a[0] << endl << a[1] << andl << a[2] << endl
}

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


int main(){
using namespace std;
        int m[10] = {0};
        int i;
        for(i = 0; i < 10; i++){
                scanf("%d", &m[i]);
        }
        sort(m, m + 10);
        reverse(m, m + 10);

        for(i = 0; i < 3; i++){
                printf("%d\n", m[i]);
        }
        return 0;
}

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

int main(){
    const int n=10;
    int h[n];
    for(int i=0;i<n;i++)
        cin >> h[i];
    sort(h,h+n);
    for(int i=0;i<3;i++)
        cout << h[n-1-i] << endl;
    return 0;
}

C++: #include<bits/stdc++.h>
#include<cstdio>
#include<sstream>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<algorithm>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<fstream>
#include<numeric>
#include<string>
#include<vector>
#include<cstring>
#include<map>
#include<iterator>

using namespace std;
#define EPS 1e-9
#define MAX 505
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define pi acos(-1.0)
#define mod 100000007
#define inf 2147483647
#define ll long long int
#define sss stringstream
#define oss ostringstream
#define iss istringstream
#define llu long long unsigned

#define _sq(a) (a)*(a)
#define sz(a) ((int)a.size())
#define gcd(a,b)    __gcd(a,b)
#define lcm(a,b) ((a)*((b)/gcd(a,b)))
#define _max3(a,b,c) max(a, max(b,c))
#define _min3(a,b,c) min(a, min(b,c))
#define FOR(i, n) for(i=0; i<(int)n; i++)
#define FOR1(i, n) for(i=1; i<=(int)n; i++)
#define mem(a) memset(a, 0, sizeof(a))
#define _set(a) memset(a,-1,sizeof(a))
#define FORI(i, a, b) for(i=a; i>=(int)b; i--)
#define FORab(i, a, b) for(i=a; i<=(int)b; i++)
#define popcount(n) __builtin_popcount(n)
#define popcountl(n) __builtin_popcountll(n)
#define sort_rev(a) sort(a.rbegin(), a.rend())
#define sort_all(a) sort(a.begin(), a.end())
#define dis_twopoints(x1,y1,x2,y2) sqrt(_sq(x1-x2) + _sq(y1-y2))
#define foreach(i,n) for(__typeof((n).begin())i =(n).begin();i!=(n).end();i++)

//If Long Long (mask & (1LL << k))
#define check(mask, k) (mask & (1 << k))
#define set1(mask, k) (mask | (1 << k))
#define set0(mask ,k) (mask & (~(1<<k)))

#define SD(a) scanf("%d",&a)
#define SLF(a) scanf("%lf",&a)
#define SC(a) scanf("%c",&a)
#define SS(a) scanf("%s",a)
#define SLLD(a) scanf("%lld", &a)
#define Si64(a) scanf("%I64d", &a)

#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
int f[60];
int main()
{
    int i,hi[11];
    for(i=0;i<10;i++)
    {
        cin>>hi[i];
    }
    sort(hi,hi+10);
    cout<<hi[9]<<endl<<hi[8]<<endl<<hi[7]<<endl;

    return 0;
}

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

int main()
{
	int a[10];
	int data_size = sizeof(a) / sizeof(a[0]) - 1;
	for (int i=0;i<=data_size;i++)
		cin >> a[i];
	sort(a,a+sizeof(a) / sizeof(a[0]));
	for (int j=0;j<=data_size;j++)
		cout << a[j] << ",";
}

C++: #include<iostream>
using namespace std;
int main()
{
	int num[10];
	int temp;
	for(int i=0;i<10;i++)
		cin>>num[i];
	for(int i=0;i<10;i++)
		for(int j=i+1;j<10;j++)
			if(num[j]<num[i])
			{
				temp=num[i];
				num[i]=num[j];
				num[j]=temp;
			}
	for(int i=9;i>6;i--)
		cout<<num[i]<<endl;
	return 0;
}

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

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

C++: #include<stdio.h>
int main(){
int yama[10];
int temp;
int i,j;

for(i=0;i<10;i++){
scanf("%d",&yama[i];
}
for(i=0;i<10;i++){
for("j=0;j<10;j++){
if(yama[i]>yama[j]){
temp=yama[j];
yama[j]=yama[i];
yama[i]=yama[j];
}
}
}
for(i=0;i<3;i++){
printf("%d\n",yama[i]);
}
return 0;
}

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

int main() {
	constexpr int MAX_N = 10;
	vector<int> height(3, 0);

	for(int i = 0; i < MAX_N; ++i) {
		int h;
		cin >> h;

		for(int j = 0; j < 3; ++j) {
			if(height[j] < h) {
				swap(height[j], h);
			}
		}
	}

	for(const auto &e : height) {
		cout << e << "\n";
	}

	return EXIT_SUCCESS;
}