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 <iostream>
#include <cstdlib>
#include <fstream>

int main(int argc, char *argv[]){
	std::ifstream datafile(argv[1]); //input datafile
	std::string str;
	int mt_height[10] = {}; //height of mountain
	int ans[3] = {}; // top 3 height of mountain. 0 -> no.1 1 -> no.2 2 -> no.3

	if(datafile.fail()){
		std::cout << "error : can't open this file." << std::endl;
		exit(1);
	}

	//input 10 height of mountain
	for(size_t i = 0; i < 10; i++){
		std::getline(datafile, str);
		sscanf(str.c_str(), "%d", &mt_height[i]);

		if((mt_height[i] < 0) || (mt_height[i] > 10000)){
			std::cout << "error : out of constraints" << std::endl;
			exit(1);
		}
	}

	//select top 3 height of mountain and sort ans[]
	for(size_t i = 0; i < 10; i++){
		if(ans[0] < mt_height[i]){
			ans[2] = ans[1];
			ans[1] = ans[0];
			ans[0] = mt_height[i];
		}else if(ans[1] < mt_height[i]){
			ans[2] = ans[1];
			ans[1] = mt_height[i];
		}else if(ans[2] < mt_height[i]){
			ans[2] = mt_height[i];
		}
	}

	//output ans[]
	for(size_t i = 0; i < 3; i++){
		std::cout << ans[i] << std::endl;
	}

	return 0;
}

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

int main(void) {
    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 "0001.hpp"
#include<iostream>
using namespace std;
#include<algorithm>

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

C++: #include <iostream>
using namespace std;
void swap(int& a, int& b){
	int t;
	t = a;
	a = b;
	b = t;
}

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

int main()
{
	int x[10];
	int j = 0;
	while(j <= 9){
		cin >> x[j];
		j++;
	}
	baburu(x, 10);
	cout << x[9] << "\n";
	cout << x[8] << "\n";
	cout << x[7] << "\n";
}

C++: #include <stdio.h>

const int tall[10] = {
	1819,
	2003,
	876,
	2840,
	1723,
	1673,
	3776,
	2848,
	1592,
	922
};

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

C++: #include <iostream>
#include <algorithm>
#include <vector>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[]) {
	vector<int> v;
	int in;
	while(scanf("%d", &in) == 1) {
		v.push_back(in);
		//cout << in;
	}
	sort(v.begin(), v.end(), greater<int>());
	for(int i = 0; i < 3; ++i)
		printf("%d\n", v[i]);
}

C++: #include <iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<queue>
#include<stack>
#include<stdio.h>
#include<vector>
#include<set>
#include<map>
#include<iomanip>
#define rep(i,n) for(int i=0;i<n;i++)
typedef int long long ll;

using namespace std;
int main(){
    ll a,b;
    while(true){
        cin>>a>>b;
        if(b>a)swap(b,a);
        ll aa=a,bb=b;
        ll o,p,q;
        while(bb!=0){
            o=bb;
            p=aa%bb;
            aa=bb;bb=p;
        }
        ll i=1;
        while(true){
            i++;
            ll ao=a*i;
            if(ao%b==0){
                q=ao;
                break;
            }
        }
        cout<<o<<" "<<q<<endl;
    }
   
    
    
    
return 0;
}

C++: /*******************************************************************************/
/* 2014.06.28 S_Nakka                                                          */
/*              0001：List of Top 3 Hills                                      */
/* take1:新規作成                                                              */
/* take2:scanfの変数側に&を追加                                                */
/*******************************************************************************/

#include <stdio.h>

int main()
{
	int mountain[10];                                      /* 山の高さ格納用   */
	int count=0;                                           /* while文ループ用  */
	int loop =0;                                           /* for文ループ用    */
	int first=0;                                           /* 1番目に高い山    */
	int second=0;                                          /* 2番目に高い山    */
	int third=0;                                           /* 3番目に高い山    */

	/***************************************************************************/
	/* ♪山の高さを10個入力するまで脱出できま10のコーナー♪                    */
	/* 山の高さを10個入力せなあかん。ちなみに高さは0〜10000の間にしてね☆      */
	/***************************************************************************/
    while(count<10)
	{
		/***********************************************************************/
		/* 山の高さを入力しなくちゃ(使命感)                                    */
		/***********************************************************************/
		printf("山の高さ%dを入力させさせなさせ",count+1);
		/***********************************************************************/
		/* take2修正:入力したい変数には&で参照しないと止まります               */
		/***********************************************************************/
		scanf("%d",&mountain[count]);

		/***********************************************************************/
		/* 山の高さを厳しくチェック                                            */
		/***********************************************************************/
		if(mountain[count]>=0&&mountain[count]<=10000)
		{
			count++;                        /*山認定されたので次の入力へ 　　　*/
		}
		else
		{
			printf("高さ%dだったら山じゃないだろ！いい加減にしろ！！\n"
				,mountain[count]);
		                                   /*山の高さがおかしくて文句言われた  */
		}
	}

	/*山の高さ格付けランキングはっじまるよー                                   */
    for(loop=0; loop<10; loop++)
	{
		if(mountain[loop]>first)           /* なんと暫定1位を超えた猛者がいた！*/
		{
			third  = second;               /* 2位を3位にずり落とす             */
			second = first;                /* 1位を2位にずり落とす             */
			first  = mountain[loop];       /* 1位に新記録の山の高さを更新！イエー */
		}
		else if(mountain[loop]>second)     /* 暫定2位より高い場合              */
		{
			third  = second;               /* 2位を3位にずり落とす             */ 
			second = mountain[loop];       /* 2位の所の山の高さを更新！ヨッシャー   */
		}
		else if(mountain[loop]>third)      /* 暫定3位より高い場合              */
		{
			third  = mountain[loop];       /* 3位の所の山の高さを更新！ウェーイ    */
		}
		else                               /* ベスト3に入らなかった平凡な山    */
		{
			;                              /* NOP！ランキングに入れてやんない！*/
		}
	}

	printf("%d\n",first);                  /* 1番目に高い山を出力しまうす      */
	printf("%d\n",second);                 /* 2番目に高い山を出力しまうす      */
	printf("%d\n",third);                  /* 3番目に高い山を出力しまうす      */

	return 0;
}