Go: package main

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

var rdr = bufio.NewReaderSize(os.Stdin, 1000000)

func readLine() string {
	buf := make([]byte, 0, 1000000)
	for {
		l, p, e := rdr.ReadLine()
		if e != nil {
			panic(e)
		}
		buf = append(buf, l...)
		if !p {
			break
		}
	}
	return string(buf)
}

func toInt(str string) int {
	n, _ := strconv.Atoi(str)
	return n
}

func main() {
	lst := make([]int, 0)
	for i := 0; i < 10; i++ {
		lst = append(lst, toInt(readLine()))
	}
	sort.Ints(lst)
	for i := 9; i > 6; i-- {
		fmt.Println(lst[i])
	}
}

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 >> 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>
using namespace std;

int Size = 10;

void ranking(const int* array) {
    int top1 = 0;
    int top2 = 0;
    int top3 = 0;
    for(int i = 0; i < Size; ++i) {
        if(array[i] > top1) {
            top3 = top2;
            top2 = top1;
            top1 = array[i];
        } else if(array[i] > top2) {
            top3 = top2;
            top2 = array[i];
        } else if(array[i] > top3) {
            top3 = array[i];
        }
    }
    cout << top1 << endl
         << top2 << endl
         << top3 << endl;
} 

int main(void) {
    int height[Size];
    
    for(int i = 0; i < Size; ++i) {
        while(true) {
            cout << "No." << i + 1 << " : " << flush;
            cin >> height[i];
            if(height[i] > 0) {
                break;
            }
        }
    }
    
    ranking(height);
}

C++: #include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int INF = 1e9;
const ll LINF = 1e18;
template<class S,class T> ostream& operator << (ostream& out,const pair<S,T>& o){ out << "(" << o.first << "," << o.second << ")"; return out; }
template<class T> ostream& operator << (ostream& out,const vector<T> V){ for(int i = 0; i < V.size(); i++){ out << V[i]; if(i!=V.size()-1) out << " ";} return out; }
template<class T> ostream& operator << (ostream& out,const vector<vector<T> > Mat){ for(int i = 0; i < Mat.size(); i++) { if(i != 0) out << endl; out << Mat[i];} return out; }
template<class S,class T> ostream& operator << (ostream& out,const map<S,T> mp){ out << "{ "; for(auto it = mp.begin(); it != mp.end(); it++){ out << it->first << ":" << it->second; if(mp.size()-1 != distance(mp.begin(),it)) out << ", "; } out << " }"; return out; }

/*
 <url:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001>
 問題文============================================================
 =================================================================
 解説=============================================================
 やるだけ
 ================================================================
 */
int main(void) {
    cin.tie(0); ios_base::sync_with_stdio(false);
    priority_queue<int> pq;
    for(int i = 0; i < 10;i++){
        int h; cin >> h; pq.push(h);
    }
    for(int i = 0; i < 3;i++){
        cout << pq.top() << endl;
        pq.pop();
    }
    return 0;
}

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

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

C++: #include <stdio.h>

int main(void){

    int mountain[10] = {0};
    int i=0;
    int j=0;
    int k=0;
    int count=0;
    int m1=0;
    int m2=0;
    int m3=0;
    
    for(i=0; i<10; i++){
        scanf("%d", &j);
        mountain[i] = j;
    }
    
    for(i=0; i<10; i++){
        j=mountain[i];
        while(k<10){
            if(j > mountain[k]){
                count++;
            }
            k++;
        }
        if(count==9){
            m1=j;
        }
        else if(count==8){
            m2=j;
        }
        else if(count==7){
            m3=j;
        }
        k=0;
        count=0;
        j=0;
    }
    printf("%d\n", m1);
    printf("%d\n", m2);
    printf("%d\n", m3);
    
    return 0;
}

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

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

		cin >> h[i];
	}
	sort(h, h+10, greater<int>());
	for(short int i=0;i<3;i++){
		cout << h[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];
           sort(a,a+10);
     }
     for(int i=9;i>6;i--){
           cout<<a[i]<< endl;
     }
	
}

C++: #include <bits/stdc++.h>

using namespace std;

#define REP(i, n) for(int i = 0; i < n; i++)
#define ALL(a) (a).begin(),(a).end()

int main() {
    vector<int> a(10);
    REP(i, 10) cin >> a[i];
    sort(ALL(a), greater<int>());
    REP(i, 3) cout << a[i]<< endl;
    return 0;
}

C++: #include<iostream>
using namespace std;
int main()
{
	int a,mountain[10],j,k;
	for(int i=0;i<10;i++){
		cin>>mountain[i];
	}
	for(j=0;j<10;j++){
		for(k=0;k<10-j;k++){
			if(mountain[k]<mountain[k+1]){
				a=mountain[k];
				mountain[k]=mountain[k+1];
				mountain[k+1]=a;
			}
		}
	}
	cout<<mountain[0]<<"\n"<<mountain[1]<<"\n"<<mountain[2]<<"\n";
	return 0;
}

C++: #include <algorithm>
#include <deque>
#include <functional>
#include <iostream>

using namespace std;

int main(){
	int hills[10];
    
    for(int i=0;i<10;i++)cin >> hills[i];
    
	partial_sort( hills, hills + 3, hills+10, greater<int>() );
    
    for(int i=0;i<3;i++)　cout << hills[i] <<endl;
    
	return 0;
}

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

int main() {
	int height;
	std::vector<int> heights;

	while (std::cin >> height) {
		heights.push_back(height);
	}
	std::sort(heights.begin(), heights.end());
	std::reverse(heights.begin(), heights.end());
	for (int i = 0; i < 3; ++i) {
		std::cout << heights.at(i) << std::endl;
	}

	return 0;
}

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

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

C++: #include <iostream>
#include <queue>

int main(void) {
    std::priority_queue<u_int> heights;
    
    for (u_int h, i = 0; i < 10; ++i) {
        std::cin >> h;
        heights.push(h);
    }
	
    for (u_int i = 0; i < 3; ++i) {
        std::cout << heights.top() << std::endl;
        heights.pop();
    }
    return 0;
}

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

int main(){

	int hill[]={0,0,0,0,0,0,0,0,0,0};

	for(int j=0;j<=9;j++){
		scanf("%d",&hill[j]);
	}

	int key;

	//sort
	for(key=9;key>=0;key--){

		for(int i=0;i<=key;i++){
			if(hill[i]>hill[i+1]){
				swap(hill[i],hill[i+1]);
			}
		}

	}

	printf("%d\n%d\n%d\n",hill[9],hill[8],hill[7]);

	return 0;

}

C++: #include <iostream>

using namespace std;

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

    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < i; j++) {
            if (height[j] < height[i]) {
                int temp = height[j];
                height[j] = height[i];
                height[i] = temp;
            }
        }
    }

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