Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func read() string {
	sc.Scan()
	return sc.Text()
}

func main() {
	sc.Split(bufio.ScanLines)

	s := make([]int, 10)
	for i := 0; i < 10; i++ {
		s[i], _ = strconv.Atoi(read())
	}
	sort.Sort(sort.Reverse(sort.IntSlice(s)))
	fmt.Println(s[0])
	fmt.Println(s[1])
	fmt.Println(s[2])
}

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 h[10], i;
    
    for(i = 0; i < 10; i++){
        
        cin >> h[i];
        
        if(h[i] < 0 || h[i] > 10000)
            i--;
    }
    
    int a = 0, b = 0, c = 0, temp;
    
    for(i = 0; i < 10; i++){
        
        if(h[i] > c){
            c = h[i];
            if(c > b){
                temp = b;
                b = c;
                c = temp;
                if(b > a){
                    temp = a;
                    a = b;
                    b = temp;
                }
            }
        }
    }
    
    cout << a << "\n" << b << "\n" << c << "\n";
    
    return 0;
}

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

int main(){
	int mountain[10], first=0, second=0, third=0;
	for(int j=0; j<10; j++){
		mountain[j]=0;
	}

	for(int i=0; i<10; i++){
		cin >> mountain[i];
		if(first <= mountain[i]){
			third = second;
			second = first;			
			first = mountain[i];
		}
		else if(mountain[i]<=first && mountain[i]>=second){
			third = second;
			second = mountain[i];
		}
		else if(mountain[i]<=second && mountain[i]>=third){
			third = mountain[i];
		}
	}
	cout << first << "\n" << second << "\n" << third << endl;

	return 0;
}

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] << ",";
}