Go: package main

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

func getsAsIntArray() (line []int) {
	scanner := bufio.NewScanner(os.Stdin)

	for scanner.Scan() {
		str := scanner.Text()
		if str == "" {
			break
		}
		data, err := strconv.Atoi(str)
		if err != nil {
			break
		}
		line = append(line, data)
	}

	return
}

func main() {

	lines := getsAsIntArray()
	sort.Sort(sort.Reverse(sort.IntSlice(lines)))
	for i, v := range lines {
		if i < 3 {
			fmt.Println(v)
		}
	}
}

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

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

 for(int i=0; i<3; i++){
  int n = h[0];
  for(int j=1; j<10; j++)
   if(n < h[i]){
    n = h[i];
    h[i] = -1;
   }
  cout << n << '\n';
 }

 return 0;
}

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

int main(){
	int a[10];
	int out[3] = {0, 0, 0};
	for (int i = 0; i < 10; ++i)	cin >> a[i];
	
	for (int i = 0; i < 10; ++i){
		if (a[i] >= out[0]){
			out[2] = out[1];
			out[1] = out[0];
			out[0] = a[i];
		}
		else if (a[i] >= out[1]){
			out[2] = out[1];
			out[1] = a[i];
		}
		else if (a[i] >= out[2]){
			out[2] = a[i];
		}
	}

	for (int i = 0; i < 3; ++i)	cout << out[i] << endl;

	return 0;
}

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

C++:  #include<stdio.h>
int main()
{
  long long array[100],i,j,n,k,temp;

    while(scanf("%lld",&n)!=EOF)
    {
        for(i=0; i<n; i++){
            scanf("%lld",&array[i]);
        }
        for(i=0; i<n-1; i++)
        {
            for(j=i+1; j<n; j++)
            {
                if(array[i]>array[j])
                {
                    temp=array[i];
                    array[i]=array[j];
                    array[j]=temp;
                }
            }
        }

        for(k=9; k>6; k--)
        {
            printf("%lld\n",array[k]);
        }
    }
    return 0;
}

C++: #include <cstdio>

int main()
{
        unsigned int hill[10];

        for (int i = 0; i < 10; i++) {
                scanf("%u", &hill[i]);
        }
        for (int i = 0; i < 3; i++) {
                for (int j = 9; j > i; j--) {
                        if (hill[j - 1] < hill[j]) {
                                unsigned int tmp = hill[j - 1];
                                hill[j - 1] = hill[j];
                                hill[j] = tmp;
                        }
                }
        }
        for (int i = 0; i < 3; i++) {
                printf("%u\n", hill[i]);
        }

        return 0;
}

C++: #include<stdio.h>

int main(){
	int rank[4];
	int M;
	int A,B;	
	rank[0]=rank[1]=rank[2]=0;
	for(A=0;A<10;A++){
		scanf("%d",&M);
		for(B=0;B<3;B++)
			if(rank[B]<M){
				rank[B+1]=rank[B];
				rank[B]=M;
				break;
			}
	}
	printf("%d\n%d\n%d\n",rank[0],rank[1],rank[2]);
	return 0;
}

C++: 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
using namespace std;
int main()
{
   int d[10],i,j,tmp;
   for(i=0;i<10;i++)
        cin >> d[10]; 
   for(i=0;i<9;i++)
     {
        for(j=i+1;j<10;j++)
          { 
             if(d[i]<d[j])
                {
                   tmp=d[i];
                   d[i]=d[j];
                   d[j]=tmp;
                }
           }
     }
    for(i=0;i<3;i++)
       cout << d[i] <<endl;
    return 0;
}

C++: //
//  main.cpp
//  sanpie
//
//  Created by h3037178 on 2017/07/28.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i[10];
    for(int o=0;o<10;o++){
        cin>>i[o];
    }
    sort(i,i+10);
    cout<<i[9]<<endl<<i[8]<<endl<<i[7]<<endl;
}

C++: //AOJ
//2018/07/08
//F_Naru

#include<iostream>
using namespace std;

int main(){
  int hst[3];
  hst[0]=0;
  hst[1]=0;
  hst[2]=0;
  int h;

  for(int i=0; i<10; i++){
    cin >> h;
    if(hst[0]<h){
      hst[2]=hst[1];
      hst[1]=hst[0];
      hst[0]=h;
    }else if(hst[1]<h){
      hst[2]=hst[1];
      hst[1]=h;
    }else if(hst[2]<h){
      hst[2]=h;
    }
  }
  
  cout << hst[0] << endl;
  cout << hst[1] << endl;
  cout << hst[2] << endl;

  return 0;
}

C++: #include <iostream>
#include <queue>
using namespace std;
int main() {
  priority_queue<int> q;
  int c;
  for (int i = 0; i < 10; ++i) {
    cin >> c;
    q.push(c);
  }
  for (int i = 0; i < 3; ++i) {
    cout << q.top() << endl;
    q.pop();
  }
  return 0;
}

C++: //
//  main.cpp
//  kyougi
//
//  Created by 寺林 一旭 on 2018/08/27.
//  Copyright © 2018年 寺林 一旭. All rights reserved.
//

#include <iostream>
int main(int argc, const char * argv[]) {
 
    int n = 0;
    while(std::cin >> n)
    {
    std::string str;
    getline(std::cin, str);
   // std::cin.ignore();
        std::cout << str << std::endl;
    }
    
    
    
    return 0;
}

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

int main()
{
	int ta;
	int top,se,sa;
	int dumy;

	for(int i=0;i<10;i++)
	{
		cin>>ta;
		if(ta>sa)
		{
			sa=ta;
		}
		if(sa>se)
		{
			dumy=se;
			se=sa;
			sa=dumy;
		}
		if(se>top)
		{
			dumy=top;
			top=se;
			se=dumy;
		}
		if(sa>se)
		{
			dumy=se;
			se=sa;
			sa=dumy;
		}
	}
	cout<<top<<endl;
	cout<<se<<endl;
	cout<<sa<<endl;

	return 0;
}

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

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

C++: #pragma GCC optimize "O3"
#include <vector>
#include <queue>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#define whole(f,x,...) ([&](decltype((x)) whole) { return (f)(begin(whole), end(whole), ## __VA_ARGS__); })(x)
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n)  FOR(i,0,n)
#define REP_FROM(i,m,n) for (int i = (m); (i) < int(n); ++(i))
#define REP_REV(i,n) for (int i = (n)-1; (i) >= 0; --(i))
#define REP_FROMREV(i,m,n) for (int i = (n)-1; (i) >= int(m); --(i))
#define CLR(a) memset((a), 0 ,sizeof(a))
#define dump(x)  cerr << #x << " = " << (x) << endl;
#define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl;
#ifndef LOCAL
#define cerr if (false) cerr
#endif
using namespace std;
inline int toInt(string s) {int v; istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}
template<class T> inline T sqr(T x) {return x*x;}
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;

template <class T> inline void setmax(T & a, T const & b) { a = max(a, b); }
template <class T> inline void setmin(T & a, T const & b) { a = min(a, b); }
template <class T> T sq(T x) { return x * x; }
template <class T> T clamp(T a, T l, T r) { return min(max(a, l), r); } // [l, r]
const double EPS = 1e-10;
const double PI  = acos(-1.0);

int main(int argc, char *argv[]) {
	// Something to do
	priority_queue<int> pq;
	REP(i, 10) {
		int height;
		cin >> height;
		pq.push(height);
	}
	REP(i, 3) {
		cout << pq.top() << endl;
		pq.pop();
	}
	return 0;
}