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 <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;
}

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

int qsort_int(const void *a, const void *b);


int main(){

	int yama[10];

	for(int i=0; i<10; i++){
		cin >> yama[i]; 
	}
	
	qsort(yama, 10, sizeof(int), qsort_int);

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

	return 0;

}

int qsort_int(const void *a, const void *b){
	 return *(int*)b - *(int*)a; 
}

C++: #include<iostream>
using namespace std;
int h1,h2,h3,t;

int main()
{
    for(int i=0;i<10;i++)
    {
        cin >> t;
        if(t>h1){h3 = h2;h2=h1;h1=t;continue;}
        if(t>h2){h3=h2;h2=t;continue;}
        if(t>h3){h3=t;}
    }
    cout << h1 << endl;
    cout << h2 << endl;
    cout << h3 << endl;

    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];
	sort(a,a+10);
	for(int i=9;6<i;i--)cout<<a[i]<<endl;
}

C++: #include <iostream>

using namespace std;

int main(){
	int h[2];
	int i,j;
	for(i=0;i<=2;i++) h[1] = 0;
	for(i=0;i<=9;i++){
		cin>>j;
		if(j >= h[0]) h[0] = j;
		else if (i >= h[1]) h[1] = j;
		else if (i >= h[2]) h[2] = j;
		else continue;
	}
	for(i=0;i<=2;i++){
		cout<<h[i]<<endl;
	}
	cin>>j;
	return 0;
}