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 <cstdio>
#include <vector>
#define MAX 10
using namespace std;

vector<int> sort(vector<int> &array);

int main(){
	vector<int> array;
	int n;
	
	for(int i = 0; i < MAX; i++){
		scanf("%d", &n);
		array.push_back(n);
	}
	
	sort(array);
	
	for(int i = 0; i < 3; i++){
		printf("%d\n", array[i]);
	}
	return 0;
}

vector<int> sort(vector<int> &array){
    int temp = 0;
    for(int i = 0; i < array.size(); i++){
        for(int j = 0; j < array.size() - i - 1; j++){
            if(array[j] < array[j + 1]){
                temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
    return array;
}

C++: #include<stdio.h>
int main(void) {
	int c[12],top=0,second=0,thread=0;
	for (int i = 1; i <= 10; i++)
	{
		scanf("%d", &c[i]);
		if (c[i]>top)
		{
			second = top;
			top = c[i];
		}
		else
		{
			if (c[i]>second)
			{
				thread = second;
				second = c[i];
			}
			else
			{
				if (c[i]>thread)
				{
					thread = c[i];
				}
			}
		}
	}
	printf("%d\n%d\n%d\n", top, second, thread);
	return 0;
}

C++: #include <stdio.h>

int main(void) {
	int a[3]={0}, i, n;
		for (i = 1; i <= 10; i++){
			scanf("%d",&n);
			if (a[0] < n){
				a[2] = a[1];
				a[1] = a[0];
				a[0] = n;
			}
			else if (a[1] < n){
				a[2] = a[1];
				a[1] = n;
			}
			else if (a[2] < n){
				a[2] = n;
			}
		}
	printf("%d\n%d\n%d\n", a[0], a[1], a[2]);
	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0; i<(int)(n); i++)
#define intt int64_t
#define all(vec) vec.begin(), vec.end()

int main() {
    vector<int> vec(10);
    rep(i,10) scanf("%d", &vec.at(i));
    sort(all(vec), greater<>());
    rep(i,3) printf("%d\n", vec.at(i));
}

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

typedef long int lint;
typedef long long int llint;
typedef pair<int, int> pii;
typedef pair<int, string> pis;
typedef pair<long, long> pll;

#define EACH(t, c) for (auto&& t : c)
#define ALL(c) begin(c), end(c)
#define FOR(i, s, e) for (int i = (s); i < (int)(e); ++i)
#define REP(i, n) FOR(i, 0, n)
#define endl '\n'
#define fk first
#define sv second

const int dx[] = {1, 0, -1, 0, 1, 1, -1, -1}, dy[] = {0, 1, 0, -1, 1, -1, 1, -1};
const int MOD = (int)1e9 + 7;
const int INF = 999999999;

template<typename T>
void print(const std::vector<T>& v, char sep=' ') {
  for (int i = 0; i < (int)v.size(); i++) {
    if (i != 0) cout << sep;
    cout << v[i];
  }
  cout << endl;
}

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int a[10];

  REP(i, 10) {
    cin >> a[i];
  }
  sort(ALL(a));

  REP(i, 3) {
    cout << a[9 - i] << endl;
  }
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector<int> height;
int a;
while(cin>>a){
height.push_back(a);
}
sort(height.begin(), height.end(), greater<int>());
for(int i = 0; i < 3; i++)
cout << height[i] << endl;
}

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

int main() {
    vector<int>mountain(10);
    for(int i = 0; i < 10; i++){
      cin >> mountain.at(i);
    }
    sort(mountain.begin(), mountain.end());
    reverse(mountain.begin(), mountain.end());

    for(int i = 0; i < 3; i++){
      cout << mountain.at(i) <<endl;
    }
}

C++: #include "bits/stdc++.h"
#include<unordered_map>
#include<unordered_set>
#pragma warning(disable:4996)
using namespace std;
using ld = long double;
template<class T>
using Table = vector<vector<T>>;


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

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

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
 
    int num;
    vector<int> list;
    while(cin)
    {
    cin >> num;
        list.push_back(num);
   
    }
    sort(list.begin(), list.end(), greater<int>());
    for(int i = 0 ; i< 3 ; i++)
    {
        cout<< list[i] <<endl;
    }
    
    
    return 0;
}

C++: #include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int a[10];
	for(int i=0;i<10;i++)cin>>a[i];
	int t=90000;
	for(int i=t;i;i--){
		for(int j=i;j;j--){
			if(i+j==2)sort(a,a+10);
		}
	}
	for(int i=9;i>6;i--)cout<<a[i]<<endl;
	return 0;
}

C++: #include<iostream>

using namespace std;

//??\?????????
void swap(int *a, int *b){
	int temp = *a;
	*a = *b;
	*b = temp;
}

int main(){
	int str,mt[10];
	int i;
	
	for(i=0;i<10;i++){
		do{
			cin >> str;
		}while(0>str||str>10000);
		mt[i]=str;
	}
	
	// ????????????
	int num = 1;
	while(num<=3){
		str = mt[num-1];
		for(i=num;i<=10;i++){
			if(str<mt[i]){
				str = mt[i];
				swap(mt[num-1],mt[i]);
			}
		}
		cout << mt[num-1] << "\n";
		num++;
	}
	
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
	int high[11] , i , j ;
	for( i=1 ; i<=10 ; i++ ){
		cin >> high[i] ;
	}
	for( i=1 ; i<=10 ; i++ ){
		for( j=1 ; j<=10 ; j++ ){
			if( high[i] > high[j] )
				swap( high[i] , high[j] );
		}
	}
	for( i=1 ; i<=3 ; i++ )
		cout << high[i] << endl;
}

C++: #include<stdio.h>
  
int main(){
    int i,j,t,data[10];
      
    for(i=0;i<10;i++)
    {
        scanf("%d",&data[i]);
    }
      
    for(i=0;i<9;i++)
    {
        for(j=0;j<9-i;j++)
        {
            if(data[j]<data[j+1])
            {
                t=data[j];
                data[j]=data[j+1];
                data[j+1]=t;
            }
        }
    }
    for(i=0;i<3;i++)
    {
        printf("%d\n",data[i]);
    }
  
    return 0;
}

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

void swap(int* x, int* y){
	int tmp = *x;
	*x = *y;
	*y = tmp;
}

int main(){
	int input = 0, a = 0, b = 0, c = 0;
	for(int i = 0; i <= 10; i++){
		cin >> input;
		if(c < input){
			swap(&c, &input);
		}
		if(b < c){
			swap(&b, &c);
		}
		if(a < b){
			swap(&a, &b);
		}
		if(a < c){
			swap(&a, &c);
		}
	}
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
using uint = unsigned int;
using lint = long long int;
using ulint = unsigned long long int;
template<class T = int> using V = vector<T>;
template<class T = int> using VV = V< V<T> >;
template<class T, class U> void assign(V<T>& v, int n, const U& a) { v.assign(n, a); }
template<class T, class... Args> void assign(V<T>& v, int n, const Args&... args) { v.resize(n); for (auto&& e : v) assign(e, args...); }


int main() {
  cin.tie(nullptr); ios_base::sync_with_stdio(false);
  string str;
  V<> a;
  while (getline(cin, str)) {
    a.push_back(stoi(str));
  }
  sort(rbegin(a), rend(a));
  for (int i = 0; i < 3; ++i) {
    cout << a[i] << '\n';
  }
}

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

using namespace std;

int main(void){
	vector<int> height ;
	string s ;
	while(cin >> s){
		height.push_back(atoi(s.c_str()));
		
	}
	sort(height.begin(),height.end(),greater<int>());
	
	for(int i=0;i<3;i++){
		cout <<height[i]<<endl ;
	}
	
	return 0 ;
}

C++: import sys
a = []
s = sys.stdin.readline()
while s :
	a.append(int(s))
	s = sys.stdin.readline()

a.sort()
a.reverse()
for i in range(3) :
	print(a[i]);