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>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	vector<int> v(10);
	for(int i=0; i<10; i++) cin >> v[i];
	sort(v.begin(), v.end(), std::greater<int>());
	for(int i=0; i<3; i++) printf("%d\n", v[i]);
}

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

int main() {
	int i, j, a[10] = {0}, temp;
	for (i = 0; i < 10; i++) {
		cin >> a[i];
	}
	for (i = 0; i < 10; i++) {
		for(j = 0; j < 10; j++) {
			if (a[j] < a[i]) {
				temp = a[j];
				a[j] = a[i];
				a[i] = a[j];
			}
		}
	}
	for (i = 9; i > 6; i--) {
		cout << a[i] << 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<algorithm>
using namespace std;
int main(){
	int a[10];
	for(int i=0;i<10;i++){
		cin>>a[i];
	}
	for(int x=0;x<9;x++){
		for(int i=0;i<9;i++){
			if(a[i] > a[i+1]){
				swap(a[i],a[i+1]);
			}
		}
		
	}
	cout<<a[9]<<endl;
	cout<<a[8]<<endl;
	cout<<a[7]<<endl;
	return 0;
}

C++: #include<stdio.h>

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

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

using namespace std;
int main()
{
int mountheight[10];
for(int i=0;i<10;i++)
{
cin>>mountheight[i];
}
int max[3];
max[0]=mountheight[0];
max[1]=mountheight[0];
max[2]=mountheight[0];
for(i=1;i<10;i++)
{
if(mountheight[i]>max[0])
{
max[0]=mountheight[i];
}
}
for(i=1;i<10;i++)
{
if(mountheight[i]>max[1]&&mountheight[i]!=max[0])
{
max[1]=mountheight[j];
}
}
for(i=1;i<10;i++)
{
if(mountheight[i]>max[2]&&mountheight[i]!=max[0]&&mountheight[i]!=max[1])
{
max[2]=mountheight[j];
}
}
cout<<max[0];
cout<<max[1];
cout<<max[2];
return 0;
}

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

using namespace std;

int main(){
	vector<int> v;
	for( int i=0; i<10; i++)
	{
		int n;
		cin>>n;
		v.push_back(n);
	}
	
	sort( v.begin(), v.end(), greater<int>() );

	cout << v[0] << endl ;
	cout << v[1] << endl ;
	cout << v[2] << endl ;

	return 0;
}

C++: #include <iostream>

int main(int argc, const char *argv[]) {
    int top1 = 0, top2 = 0, top3 = 0;
    for (int i = 0, h; i < 10 && std::cin >> h; i++) {
        if (h >= top1) {
            top3 = top2;
            top2 = top1;
            top1 = h;
        } else if (h >= top2) {
            top3 = top2;
            top2 = h;
        } else if (h >= top3) {
            top3 = h;
        }
    }
    std::cout << top1 << std::endl << top2 << std::endl << top3 << std::endl;
    return 0;
}

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

C++: #include <stdio.h>

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

C++: #include<stdio.h>
int mian(void)
{
	int i,j,n[11],w;
	for(i=0;i<10;i++){
		scanf("%d",n[i]);
	}
	for(i=0;i<10;i++){
		for(j=0;j<=10;j++){
			if(n[j]<=n[i]){
				w=n[i];
				n[i]=n[j];
				n[j]=w;
			}
		}
	}
	for(i=0;i<3;i++){
		printf("%d\n",y[i]);
	}
	return 0;
}