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++: #define _USE_MATH_DEFINES
#include <iostream>
#include <vector>
#include <math.h>
#include <string>
#include <string.h>
#include <stack>
#include <algorithm>
#include <stdio.h>
#include <functional>
using namespace std;

//??°?????????????????°

void function()
{
    //??¢??°
}
 
int main(){
    int max1 = 0;
    int max2 = 0;
    int max3 = 0;
    for (int i = 0; i < 10; i++){
    	int a;
		cin >> a;
		if(a >= max1){
		max3 = max2;
		max2 = max1;
		max1 = a;
		}else if(a >= max2){
			max3 = max2;
			max2 = a;
		}else if(a >= max3){
			max3 = a;
		}
    }
    cout << max1 << endl << max2 << endl << max3 << endl;
    return 0;
}

C++: #include <iostream>

#define MOUNTAINS 10
#define RANK 3

using namespace std;

void InsertToRank(int *rank, int idx, int height);

int main(void)
{
    int i, j;
    int rank[RANK] = {0};
    int height;
    
    for (i = 0; i < MOUNTAINS; i++) {
        cin >> height;
        for (j = 0; j < RANK; j++) {
            if (rank[j] < height) {
                InsertToRank(rank, j, height);
                break;
            }
        }
    }
    
    for (i = 0; i < RANK; i++) {
        cout << rank[i] << endl;
    }
    
    return 0;
}

void InsertToRank(int *rank, int idx, int height)
{
    int i;
    
    for (i = 2; i > idx; i--) {
        rank[i] = rank[i - 1];
    }
    rank[idx] = height;
}

C++: //
//  main.cpp
//  sanpie
//
//  Created by h3037178 on 2017/07/28.
//  Copyright ?? 2017??´ ?????£?????????. All rights reserved.
//

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

C++: #include <iostream>
#include <algorithm>
using namespace std;
    
int main(){
	int data,m[10];

	
	for (int j=0;j<=9;j++){
			while(cin >> data){
			if (data<=10000 && data >= 0 ) {
			m[j]=data;
			break;
		}
			}
	}

for (int i=0;i<=9;i++){

	if (m[i] < m[i+1]){
		swap(m[i],m[i+1]);
	for (int j=i;j>0;j--){
	if (m[j] > m[j-1])
		swap(m[j],m[j-1]);
	}
	}
}


 
for (int i=0;i<=9;i++){
cout <<  m[i] <<'\n';
}

    return 0;
}

C++: #include <iostream>
#include <array>
#include <algorithm>
   
int main(){
    std::array<u_int, 10> heights;
      
    for (u_int i = 0; i < 10; ++i){
        std::cin >> heights[i];
    }
      
    std::sort(heights.begin(), heights.end(), std::greater<u_int>());
      
    for (u_int i = 0; i < 3; ++i){
        std::cout << heights[i] << std::endl;
    }
     
    return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	int a[10];
	for (int i = 0; i < 10; ++ i) 
		cin >> a[i];
	int t = 0;
	for (int i = 0; i < 10; ++ i) 
		if (a[t] < a[i]) t = i;;
	cout << a[t] << endl;
	a[t] = -1;
	t = 0;
	for (int i = 0; i < 10; ++ i) 
		if (a[t] < a[i]) t = i;;
	cout << a[t] << endl;
	a[t] = -1;
	t = 0;
	for (int i = 0; i < 10; ++ i) 
		if (a[t] < a[i]) t = i;;
	cout << a[t] << endl;
	a[t] = -1;
	t = 0;

	return 0;
}

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

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

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

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

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

using namespace std;

int main(void) {
	vector<int> v;
	string str;

	for (int i = 0; i < 10; i++) {
		getline(cin, str);
		v.push_back(atoi(str.c_str()));
	}

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

	for (int j = v.size() - 1; j > v.size() - 4; j--) {
		cout << v[j] << endl;
	}

	return 0;
}

C++: #include<stdio.h>

int main(){
	int top[10] = {1819, 2003, 876 ,2840, 1723, 1673, 3776, 2848, 1592, 922};
	unsigned char i = 0;
	unsigned char j = 0;
	unsigned int buf = 0;
	
	for (i = 0; i < 10; i++) {
		for (j = (1 + i); j < 10; j++) {
			if (top[i] < top[j]) {
				buf = top[i];
				top[i] = top[j];
				top[j] = buf;
			}
		}
	}
				
	for (i = 0; i < 3; i++) {
		printf("%d\n", top[i]);
	}
	
 	

	
    return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
	int h[10],one=0,two=0,three=0;
	for(int i=0;i<10;i++){
		cin>>h[i];
		if(three<h[i]){
			if(two<=h[i]){
				if(one<=h[i]){
					three=two;
					two=one;
					one=h[i];
				}else{
					three=two;
					two=h[i];
				}
			}else{
				three=h[i];
			}
		}
	}
	cout<<one<<endl<<two<<endl<<three<<endl;
	return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <queue>
#include <set>
#include <numeric>
#include <cmath>

using namespace std;

typedef long long int lld;

const lld mod = 1e9+7;
const lld INF = 1e9;
//const lld MAXN = 1e9;

int main()
{
	int a[10];

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

	sort(a,a+10,greater<int>());

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


	return 0;
}

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

int main()
{
    int x[10];
    for (unsigned int i = 0; i < sizeof(x) / sizeof(int); i++)
        cin >> x[i];
    int first = 0;
    for (unsigned int i = 0; i < sizeof(x) / sizeof(int); i++)
        if (x[i] > first)
            first = x[i];
    int second = 0;
    for (unsigned int i = 0; i < sizeof(x) / sizeof(int); i++)
        if (x[i] > second && first > x[i])
            second = x[i];
    int third = 0;
    for (unsigned int i = 0; i < sizeof(x) / sizeof(int); i++)
        if (x[i] > third && second > x[i])
            third = x[i];
    cout << first << endl;
    cout << second << endl;
    cout << third << endl;
}

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

using namespace std;

int main() {
  vector<int> mountains;
  for (int i = 0; i < 10; i++) {
    int mountain;
    scanf("%d", &mountain);
    mountains.push_back(mountain);
  }
  sort(mountains.begin(), mountains.end(), greater<int>());
  for (int i = 0; i < 3; i++) {
    printf("%d\n", mountains[0]);
    mountains.erase(mountains.begin());
  }
}

C++: #include<stdio.h>
int main()
{
    long long int  ansh[11],i,n,a=0,b=0,c=0;
    for(i=1;i<=10;i++){
        scanf("%lld",&ansh[i]);
        if(a<=ansh[i]){
            c=b;
            y=a;
            a=ansh[i];
        }
        else if(b<=ansh[i]){
            c=b;
            y=ansh[i];
        }
        else if(z<=ansh[i]){
            c=ansh[i];
        }
    }

    printf("%lld\n%lld\n%lld\n",a,b,c);

    return 0;
}

C++: 
#include <iostream>

using namespace std;

int main()
{
	int first = 0;
	int second = 0;
	int third = 0;
	for (int i = 0; i < 10; ++i) {
		int input;
		cin >> input;
		if (first < input) {
			third = second;
			second = first;
			first = input;
			continue;
		}
		else if (second < input) {
			third = second;
			second = input;
			continue;
		}
		else if (third < input) {
			third = input;
		}
	}

	cout << first << endl
		<< second << endl
		<< third << endl;

	return 0;
}