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>
using namespace std;

int main(){
	int i,j,tmp,x;
	int tall[3] = {0};
	int num[10];

	for(i = 0 ; i < 10 ; i++){
		cin >> num[i];
		tmp = num[i];
		for(j = 0 ; j < 3 ; j++ ){
			if(tall[j] <= tmp){
				x = tall[j];
				tall[j] = tmp;
				tmp = x;

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

C++: #include<iostream>

int main(void)
{
	int i,j,max,tmp,high[10];

	for(i=0;i<10;i++){
		std::cin >> high[i];
	}

	for(i=0;i<3;i++){
		for(j=1,max=high[0];j<10;j++){
			if(max<high[j]){
				max=high;
				tmp=j;
			}
		}
		high[tmp]=0;
		std::cout << max << std::endl;
	}
	return 0;
}

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


int main()
{
	using namespace std;

	// \[gÎÛÆ·éReiðpÓ
	deque<int> nums;
	for(int i=0;i<10;i++){
		int temp=0;
		cin>>temp;
		nums.push_back(temp);
	}

	// \[gÀs
	sort( nums.begin(), nums.end(),greater<int>());

	// ÊðoÍ
	deque<int>::iterator it = nums.begin();
	
	for(int i=0;i<3;i++){
		cout << *it << endl;
		++it;
	}

	return 0;
}

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

#define rep(i,n) for(int i=0;i<n;i++)
#define REP(n) rep(i,n)
#define all(n) n.begin(),n.end()

int main()
{
    vector<int> h; int t;
    REP(10){ cin >> t; h.push_back(t);}
    sort(all(h));

    cout << h[9] << endl;
    cout << h[8] << endl;
    cout << h[7] << endl;

    return 0;
}

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

int main(){
  int a[10];
  int i;
  int j;
  for(i=0;i<10;i++){
    cin >> a[i];
      }for(i=0;i<10;i++){
    for(j=9;j>i;j--){
      if(a[j-1]<a[j]){
	int a1=a[j-1];
	  a[j-1]=a[j];
	  a[j]=a1;
      }}}
  for(i=0;i<3;i++)
    cout << a[i] << endl;
    return 0;
  }

C++: #include <stdio.h>
#include <string.h>

int main()
{
	int i,ar[20],srt_data[20];
	for(i=0;i<10;i++)
	{
		scanf("%d",&ar[i]);
	}	
	for(i=0; i<10; i++)
	{
		int loc=0;
		for(int x=0; x<10; x++)
		{
			if(ar[i] > ar[x])
				loc++;
		}
		srt_data[loc] = ar[i];
	}
	printf("%d\n%d\n%d\n",srt_data[9],srt_data[8],srt_data[7]);    
    return 0;
}

C++: #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <queue>
#include <functional>

using namespace std;

#define REP(i,a,b) for((i)=(a);(i)<(int)(b);(i)++)
#define rep(i,n) REP(i,0,n)
#define foreach(itr,c) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++)
template<class T> inline void pretty(T& a,int n){int i;rep(i,n){cout<<a[i];if(n-1==i)cout<<endl;else cout<<" ";}}
template<class T> inline void pretty(T& c){foreach(it,c){cout<<*it;if(distance(it,c.end())!=1)cout<<" ";else cout<<endl;}}


int main(){
  int i,j,k,n;
  vector<int> in(10);

  rep(i,10) cin >> in[i];
  sort(in.begin(),in.end(),greater<int>());
  rep(i,3) cout << in[i] << endl;

  return 0;
}

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

#define N 10

void hoge(){
	int i;
	int h[N];
	for(i=0;i<N;i++){
	 cin>>h[i];
	}
	sort(h,h+N);
	
	cout<<h[9]<<h[8]<<h[7]<<endl;
}

int main(){
	
	hoge();
	
	return 0;
}

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

int main(){
	int val[3]={0};
	for(int i=0;i<10;i++){
		int a;
		cin >> a;
		if(a > val[0]){
			val[2] = val[1];
			val[1] = val[0];
			val[0] = a;
		}else if(a > val[1]){
			val[2] = val[1];
			val[1] = a;
		}
		else if(a > val[0])
			val[2] = a;
	}	
	for(int i=0;i<3;i++)
	cout << val[i] << endl;
}

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

int main(){
	int h[10]={};
	

	for(short int i=1; i<=10;i++){
		cin >> h[i];
		if(!(0<=h<=10000)){
			i--;
			continue;
		}
	}
	sort(h, h+10, greater<int>());
	for(short int i=0;i<3;i++){
		cout << h[i] << endl;
	}
	return 0;
}

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

int n = 0;

int main() {
    int hight[10];

    for (int i = 0; i < 10; i++) {
        cin >> hight[i];
    }
    
    for (int a = 1; a <= 10; a++) {
        for (int x = 0; x < 10; x++) {
            if (hight[x] < hight[x+1]) {
                n = hight[x];
                hight[x] = hight[x+1];
                hight[x+1] = n;
            }
        }
    }
    
    cout << hight[0] << endl;
    cout << hight[1] << endl;
    cout << hight[2] << endl;
    
    return 0;
}

C++: #include<stdio.h>
int main(void)
{
	int i,j,n[10],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",n[i]);
	}
	return 0;
}

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

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

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

int main()
{
  int high;
  int temp1,temp2;
  int first=0,second=0,third=0;
  
  for(int i=0;i<10;i++){
    cout<<"山の高さ"<<i<<":";
    cin>>high;
    if(high>first){
      temp1=first;
      first=high;
      temp2=second;
      second=temp1;
      third=temp2;
    } else if (first>=high && high>second){
      temp2=second;
      second=high;
      third=temp2;
    } else if (second>=high && high>third){
      third=high;
    }
  }

  cout<<"1番目に高い山の高さ:"<<first<<endl;
  cout<<"2番目に高い山の高さ:"<<second<<endl;
  cout<<"3番目に高い山の高さ:"<<third<<endl;
  
  return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	int i, j, temp, m[10];

	for(i=0; i<10; i++) {
		m[i]=0;
	}

	for(i=0; i<10; i++) {
		while(1) {
			cin >> m[i];
			if(m[i]>0&&m[i]<10001)
				break;
		}
	}

	for(i=0; i<9; i++) {
		for(j=9; j>i; j--) {
			if(m[j-1]<m[j]) {
				temp=m[j-1];
				m[j-1]=m[j];
				m[j]=temp;
			}
		}
	}
	
	for(i=0; i<3; i++) {
		cout << m[i] << endl;
	}
}

C++: #include <cstdio>
#include <set>

int main(){
  using namespace std;
  set<int, greater<int> > mts;
  for(int i = 0; i < 10; i++){
    int tmp;
    scanf("%d", &tmp);
    mts.insert(tmp);
  }
  int count = 0;
  for(int mt : mts){
    printf("%d\n", mt);
    if(++count >= 3) break;
  }
}

C++: #include<stdio.h>

int main(void)
{
	int high[10]={0};
	int x,max1=0,max2=0,max3=0;

	for(x=0;x<10;x++)
	{
		scanf("%d",&high[x]);
	}

	for(x=0;x<10;x++)
	{
		if(max1<high[x])
		{
			max3=max2;
			max2=max1;
			max1=high[x];
		}
		else if(max2<high[x])
		{
			max3=max2;
			max2=high[x];
		}
		else if(max3<high[x])
		{
			max3=high[x];
		}
	}

	printf("%d\n%d\n%d\n",max1,max2,max3);
	return 0;
}