Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func main() {
	heights := make([]int, 10)
	for i := 0; i < 10; i++ {
		sc.Scan()
		heights[i], _ = strconv.Atoi(sc.Text())
	}

	sort.Sort(sort.Reverse(sort.IntSlice(heights)))
	for i := 0; i < 3; i++ {
		fmt.Println(heights[i])
	}
}

C++: #include <iostream>

using namespace std;

int main()
{
    int first, second, third;
    int tmp;
    
    first = second = third = 0;
    for (int i = 0; i < 10; i++) {
        cin >> tmp;
        if (tmp >= third) {
            if (tmp >= second) {
                if (tmp >= first) 
                    first = tmp;
                else
                    second = tmp;
            }
            else
                third = tmp;
        }
    }
    cout << first << '\n' << second << '\n' << third << '\n';

    return 0;
}

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


int main(void){

	int a[11],i,j;

	for (int i=1; i<11; i++){
		while (true){ 
		//cout << "山の高さ" << i << "（整数）" ;			
		cin >> a[i];
		if ((cin.good() == 1) && (a[i] >= 0) && (a[i] <= 10000)) {
			break;
		}
		}	
	}


	for (i=1; i<11; ++i){
		for (j=i+1; j<11 ; ++j){
		if (a[i] < a[j]){swap(a[i],a[j]);}
	}
			}


	for (i=1;i<4;++i){
		cout << a[i] << endl;
	}
		

		return 0;
	}

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

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

using namespace std;
#define rep(i,n) for(int i = 0; i < n; i++)

int main(){

	vector<int> data(10);

	rep(i,10){
		cin >> data[i];
	}

	sort(data.begin(),data.end());

	rep(i,3){
		cout << data[9 - 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 <stdio.h>

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

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

using namespace std;

const int SIZE = 10;

int main()
{
    int intArray[SIZE]; //= {5, 3, 32, -1, 1, 104, 53, 23 , 34, 90};
    for(int i=0;i<SIZE;i++)
    {
        cin>>intArray[i];
    }
    //Now we call the sort function
    sort(intArray, intArray + SIZE);

    cout<<"height of 1st mountain "<<intArray[9]<<endl;
    cout<<"height of 2nd mountain "<<intArray[8]<<endl;
    cout<<"height of 3rd mountain "<<intArray[7]<<endl;


    return 0;
}

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

using namespace std;

int main() {
	vector<int> mountains;
	int n;
	while (cin >> n) {
		mountains.push_back(n);
	}
	sort(mountains.begin(), mountains.end(), greater<int>());
	
	cout << mountains[0] << endl;
	cout << mountains[1] << endl;
	cout << mountains[2] << endl;
}

C++: #include<iostream>
using namespace std;
int main() {
	typedef unsigned short int mew;
	mew mountain[10];
	for (int i = 0; i < 10; i++) {
		cin >> mountain[i];
	}

	mew taller[3];
	mew a, b, c;

	a = mountain[0];
	b = mountain[1];
	c = mountain[2];

	for (int y = 3; y <= 9; y++) {
		if (a <= b) {
			if (a <= c) {
				if (a < mountain[y]) {
					a = mountain[y];
				}
			}
			else {
				if (c < mountain[y]) {
					c = mountain[y];
				}
			}
		}
		else if (b <= c)
		{
			if (b < mountain[y]) {
				b = mountain[y];
			}
		}
	}

	//biggest->taller[0],bigger->taller[1],taller[2]
	{
		if (a >= b&&a >= c)
		{
			taller[0] = a;
			if (b >= c)
			{
				taller[1] = b;
				taller[2] = c;
			}
			else {
				taller[1] = c;
				taller[2] = b;
			}
		}
		if (b >= a&&b >= c)
		{
			taller[0] = b;
			if (a >= c)
			{
				taller[1] = a;
				taller[2] = c;
			}
			else {
				taller[1] = c;
				taller[2] = a;
			}
		}
		if (c >= b&&c >= a)
		{
			taller[0] = c;
			if (b >= a)
			{
				taller[1] = b;
				taller[2] = a;
			}
			else {
				taller[1] = a;
				taller[2] = b;
			}
		}
	}

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

	char a____;
	cin >> a____;

	return 0;
}

C++: #include<iostream>
using namespace std;
int main()
{	
int i[3] = {0,0,0};
int n,j;
for(j=0;j<10;j++)
{
cin>>n;
	if(n >= 0 && n <=10000)
	{
		if(i[0] < n)
		{
		 i[2] = i[1];
		 i[1] = i[0];
		 i[0] = n;
		}
		else if(i[1] < n)
		{
		 i[2] = i[1];
		 i[1] = n;
		}
		else if(i[2] < n)
		{
		 i[2] = n;
		}
	}
}
	for(j=0;j<3;j++)
	{
 	cout<<i[j]<<endl;
	}
}

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

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

C++: #include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

#define REP(i, b, n) for (int i = (b); i < (n); i++)
#define rep(i, n) REP(i, 0, n)

int main()
{
	vector<int> nums;
	int n;
	while (cin >> n) {
		nums.push_back(n);
	}
	sort(nums.begin(), nums.end());
	reverse(nums.begin(), nums.end());
	rep(i, 3)
		cout << nums[i] << endl;
	return 0;
}

C++: #include <stdio.h>
#include <iostream>
using namespace std;
int main(){
int height[10],pos,max[3];
for(int i=0;i<10;++i)cin >> height[i];
for(int i=0;i<3;++i){
 int tmp = 0;
 for(int n=0;n<10;++n){
  if(tmp<height[n]){
   tmp = height[n];
   pos = n;
  }
 }
 max[i] = tmp;
 height[pos] = 0;
}
for(int i=0;i<3;++i)
 cout << max[i] << "\n";
 return 0;
}