Go: package main

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

func main() {
        fp := os.Stdin
        scanner := bufio.NewScanner(fp)
        var lst [3]int

        for scanner.Scan() {
                num, _ := strconv.Atoi(scanner.Text())
                if lst[0] < num {
                        lst[2] = lst[1]
                        lst[1] = lst[0]
                        lst[0] = num
                } else if lst[1] < num {
                        lst[2] = lst[1]
                        lst[1] = num
                } else if lst[2] < num {
                        lst[2] = num
                }
        }

        for _, i := range lst {
                fmt.Printf("%d\n", i)
        }
}

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

using namespace std;

int main()
{
	const int LENGTH = 10;

	int mountain[LENGTH];
	for(auto& i : mountain)
		cin >> i;

	sort(mountain, mountain+LENGTH, greater<int>());

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

C++: #include<stdio.h>
int main(void)
{
	int a, b, max = 0, max2 = 0, max3 = 0;
	for(a = 1; a <= 10; a++) {
		scanf("%d", &b);
		if(b > max) {
			max = b;
		}
		else if(b > max2) {
			max2 = b;
		}
		else if(b > max3) {
			max3 = b;
		}
	}
		printf("%d\n %d\n %d\n", max, max2, max3);
		return 0;
}

C++: #include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <numeric>
#include <iomanip>

#define REP(i,n) for(i=0; i < (n); i++)
#define REPONE(i, n) for(i=1; i <= (n); i++)
#define LOOP(n) for(int loopCount=1; loopCount <= (n); loopCount++)
#define ITER(c) __typeof((c).begin())
#define EACH(c,it) for(ITER(c) it =(c).begin(); it!=(c).end(); it++)
#define SZ(c) ((int) (c).size())
#define ALL(c) c.begin(), c.end()
#define SUM(c) accumulate(ALL(c), 0)
#define EXIST(c,v) (find(ALL(c), (v)) != (c).end())
#define PB push_back
#define MP make_pair

using namespace std;
static const double EPS = 1e-9;
static const double PI = 3.141592653589793238462643383279;
typedef long long ll;

int main(){
    vector<int> hs;
    int x;
    LOOP(10){
        scanf("%d", &x);
        hs.PB(x);
    }
    sort(ALL(hs), greater<int>());
    printf("%d\n", hs[0]);
    printf("%d\n", hs[1]);
    printf("%d\n", hs[2]);
    return 0;
}

C++: #include<stdio.h>

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

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

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

C++: #include <studio.h>
#include <iostream>

intmain(){

int 1st, 2nd, 3rd, i, mou[10];

1st = 0;
2nd = 0;
3rd = 0;


for(i=1:i=<10:i++){
	cin >> mou[i];
	if(mou[i] > 1st){
		3rd = 2nd;
		2nd = 1st;
		1st = mou[i];
		break;
	}
	if(mou[i] > 2nd){
		3rd = 2nd;
		2nd = mou[i];
		break;
	}
	if(mou[i] > 3rd){
		3rd = mou[i];
		break;
	}
}

cout << 1st << "\n" << 2nd << "\n" << 3rd << endl;

return 0;
}

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

C++: #include <iostream>

int main(int argc, const char * argv[])
{
    using namespace std;
    int max = 0;
    int second = 0;
    int third = 0;
    
    int n[10];
    int swap;
    
    for(int i = 0; i < 10; i++) {
        cin >> n[i];
    }
    for(int i = 0; i < 10; i++) {
        if(max < n[i]) {
            if(max > second) {
                swap = second;
                second = max;
                if (swap > third) {
                    third = swap;
                }
            }
            if (second > third) {
                third = second;
            }
            max = n[i];
        }
        else if(second < n[i]) {
            if (third > second) {
                third = second;
            }
            second = n[i];
        }
        else if(third < n[i]) {
            third = n[i];
        }
    }
    
    cout << max << "\n" << second << "\n" << third << "\n";
    return 0;
}

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

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int h[10];
    for(int i=0; i<10; i++) {
        cin>>h[i];
    }
    for(int i=0; i<3; i++) {
        for(int j=9; j>i; --j) {
            if(h[j-1]<h[j]) swap(h[j-1], h[j]);
        }
    }
    for(int i=0; i<3; i++) cout<<h[i]<<'\n';
    return 0;
}

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

using namespace std;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	vector<int> H(10);
	for (int i = 0; i < 10; ++i)
		cin >> H[i];

	sort(H.begin(), H.end(), greater<int>());

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

	return 0;
}

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

using std::cin;
int main(){
	int a[10];
	int b;
	for(int i=0;i<10;i++){
		cin >> a[i];
	}   int mou1,mou2,mou3;
			mou1=a[0];
	    for(int i=0;i<10;i++){
		
		if(mou1<a[i+1]){
				mou1=a[i+1];
				b=i+1;
		}
		}
		a[b]=0;
		mou2=a[0];
		 for(int i=0;i<10;i++){
		
		if(mou2<a[i+1]){
				mou2=a[i+1];
				b=i+1;
				
		}
		}a[b]=0;
		 mou3=a[0];
		  for(int i=0;i<10;i++){
		
		if(mou3<a[i+1]){
				mou3=a[i+1];
				b=i+1;
				
		}
		}
		cout<<mou1<<"\n"<<mou2<<"\n"<<mou3;

	return 0;

}

C++: 
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <string>
#include <functional>
#include <numeric>
#include <ctype.h>
#include <cstdlib>
#include <string.h>
#include <cmath>
#include <cstdio>





using namespace std;


int main()
{
	int input;
	vector<int> vec;

	for (int i = 0; i < 10; i++)
	{
		cin >> input;
		vec.push_back(input);
	}

	sort(vec.begin(), vec.end(), greater<int>());

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

C++: #include<iostream>
#include<algorithm>
#include<vector>
#include<functional>
using namespace std;
int main(){
	vector<int> high;
	int n;
	for(int i=0; i<10; i++){
		cin >>n;
		high.push_back(n);
	}
	sort(high.begin(),high.end(),greater<int>());
	cout <<high[0]<<endl<<high[1]<<endl<<high[2]<<endl;
	return 0;
}

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

int main()
{
    int* h = new int[10];

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

    int max1=h[1], max2=h[2], max3=h[3];
    for(int j=0; j<9; j++){
        if(max1 <= h[j+1]){
            max1 = h[j+1]; 
        }
    }
    for(int j=0; j<9; j++){
        if(max2 <= h[j+1] && h[j+1] != max1){
            max2 = h[j+1]; 
        }
    }
    for(int j=0; j<9; j++){
        if(max3 <= h[j+1] && h[j+1] != max1 && h[j+1] != max2){
            max3 = h[j+1]; 
        }
    }

    cout << max1 << endl;
    cout << max2 << endl;
    cout << max3 << endl;
}

C++: /*Filename: aoj0001.cpp
 *Author: Mushiyo
 */

#include <iostream>
#include <algorithm>

using namespace std;

int main(){
	const int MOUNTAIN_NUM = 10;
	int mountain[MOUNTAIN_NUM];

    for(int i = 0; i < MOUNTAIN_NUM; ++i){
    	cin >> mountain[i];
    }

    sort(mountain, mountain + MOUNTAIN_NUM, greater<int>());

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

	return 0;
}