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 M[10];

void bubbleSort(int M[], int N) {
	int flag = 1;
	while (flag) {
		flag = 0;
		for (int i = N - 1; i > 0; --i) {
			if (M[i - 1] > M[i]) {
				int t = M[i];
				M[i] = M[i - 1];
				M[i - 1] = t;
				flag = 1;
			}
		}
	}
}

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

	bubbleSort(M, 10);

	for (int i = 1; i < 4; ++i) {
		cout << M[10 - i] << " ";
	}
	cout << endl;
}

C++: #include<stdio.h>
        
int main(void){
    /* 宣言と初期化 */
    int hai[10];
    int id[2]
    int i;
    int temp2nd;
    int temp3rd;
    int tempmax;
        
for(i=0;i<10;i++)
{
scanf("%d",&hai[i]);
}
    /* 代入 */
    temp2nd=hai[0];
    tempmax=hai[0];
    temp3rd=hai[0];  
    /* 計算 */
    for(i=0;i<10;i++){
        /* 最大値求める */
        if(hai[i]>tempmax)
       {tempmax=hai[i];id[0]=i;}
    }
    for(i=0;i<10;i++){
        /*2番目求める */
        if(hai[i]<tempmax&&hai[i]>temp2nd&& i=! id[0])
        {temp2nd=hai[i];id[1]=i;}
    }    
    for(i=0;i<10;i++){
        /* 3番目求める */
        if(hai[i]>temp3rd&&hai[i]<temp2nd && i =! id[1] && i =! id[0])
       {temp3rd=hai[i];}
    }
        
    /* 表示 */
    printf("最も高い山の高さ　%d\n",tempmax);
    printf("２番目に高い山の高さ　%d\n",temp2nd);
    printf("３番目に高い山の高さ　%d\n",temp3rd);
        
    return 0;
}

C++: #include <bits/stdc++.h>
#define IN(a) scanf("%d",&a);
#define REPT(i,n) for (int i=1;i<=(n);i++)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RER(i,n,m) for (int i=m;i>(m-n);i--)
#define BR break;

using namespace std;

int main(){
	int a[10];

	REP(i,10)
	{
		IN(a[i]);
	}
	sort(a,a+10);

	RER(i,3,9){
		printf("%d\n",a[i]);
	}

	return 0;
 }

C++: #include<iostream>
using namespace std;
int main(){
  int x, buf, i, j;
  int top[3];
  for(i = 0; i < 3; i++)
    top[i] = 0;

  for(i = 0; i < 10; i++){
    cin >> x;
    if(x > top[2]){
      top[2] = x;
      j = 2;
      while(j > 0){
        if(top[j-1] <top[j]){
          buf = top[j-1];
          top[j-1] = top[j];
          top[j] = buf;
          j--;
        }else{
          break;
        }
      }
    }
  }

  for(i = 0; i<3; i++)
    cout << top[i] << '\n';

  return 0;
}

C++: #include<stdio.h>
int main(){
    int l[10],r[10]={-1};
    int i,j,k,c[10],n=0;
    for(i=0;i<10;i++){
        c[i]=11;
    }
    for(i=0;i<10;i++){
        scanf("%d",&l[i]);
    }
    for(j=0;j<10;j++){
        for(i=0;i<10;i++){
            for(k=0;k<10;k++){
                if(c[k]==i){
                    n=1;
                }
            }
            if(!(n==1)){
                if(l[i]>=r[j]){
                    r[j]=l[i];
                    c[j]=i;
                }
            }
            n=0;
        }
    }
    for(i=0;i<3;i++){
        printf("%d\n",r[i]);
    }
    return 0;
}

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

int main(){
    int arr[10];
    for(int i=0; i<10; i++){
        cin>>arr[i];
    }
    sort(arr,arr+10);
    cout<<arr[9]<<endl;
    cout<<arr[8]<<endl;
    cout<<arr[7]<<endl;
}

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

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

int main(){
	std::vector<int>v(10);
	for(int i=0;i<10;i++){
		int a;std::cin>>a;
		v[i]=a;
	}
	std::sort(v.begin(),v.end());
	std::cout<<v[9]<<std::endl;
	std::cout<<v[8]<<std::endl;
	std::cout<<v[7]<<std::endl;
	return 0;
}

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

int main()
{
	int max = 0;
	int max2 = 0;
	int max3= 0;
	int a[10];
	bool flag = false;

	for (int i = 0; i < 10; i++) {
		scanf("%d", &a[i]);
		if (max < a[i]) max = a[i];
	}
	
	for (int i = 0; i < 10; i++) {
		if (!flag && a[i] == max) {
			flag = true;
			a[i] = 0;
		}
		if (max2 < a[i]) max2 = a[i];
	}

	flag = false;

	for (int i = 0; i < 10; i++) {
		if (!flag && a[i] == max2) {
			flag = true;
			a[i] = 0;
		}
		if (max3 < a[i]) max3 = a[i];
	}
		printf("%d\n", max);
		printf("%d\n", max2);
		printf("%d\n", max3);

		return (0);
	
}

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

using namespace std;

bool fn(int a, int b) {
    if (a > b) return true;
    
    return false;
}


int main() {
	int N = 10;
	int height;
	vector<int> mountains;
	
	while (N--) {
	    scanf("%d", &height);
	    
	    mountains.push_back(height);
	}
	
    sort(mountains.begin(), mountains.end(), fn);
    
    printf("%d\n", mountains.at(0));
    printf("%d\n", mountains.at(1));
    printf("%d\n", mountains.at(2));
	
	return 0;
}

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

int main(){
	int mountain[10];
	for(int i=0; i<10; i++){
		cin >> mountain [i];
	}
	sort(mountain,mountain+10);
	cout << mountain [9] << endl << mountain[8] << endl << mountain[7] << endl;	
    return 0;
}

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

int main()
{
    
    int i = 10,m[10];
    
    while(i>0){
        cin >> m[i];
        i--;
    }
    
    int max = m[0],index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;
    m[index] = 0;
    
    max = m[0];
    index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;
    m[index] = 0;
    max = m[0];
    index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;

    m[index] = 0;
    
    return 0;
}

C++: #include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
	int m[11],t;
	for(int i=1;i<=10;i++)
	{
		cin>>m[i];
	}
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		{
			t=m[i];
			m[i]=m[j];
			m[j]=t;
		}
	}
	cout<<m[1]<<endl;
	cout<<m[2]<<endl;
	cout<<m[3]<<endl;
	return 0;
}

C++: #include<stdio.h>
int main(){
	int list[10];
	int lank[3]={-1},chk[3]={11},f=0,ch=11;
	for(int i=0;i<10;i++){
		scanf("%d",&list[i]);
	}
	for(int c=0;c<3;c++){
		for(int i=0;i<10;i++){
			for(int j=0;j<3;j++){
				if(chk[j]==i){
					f=1;
				}
			}
			if(f==1){
				f=0;
			}else{
				if(lank[c]<=list[i]){
					lank[c]=list[i];
					ch=i;
				}
			}
		}
		chk[c]=ch;
	}
	for(int c=0;c<3;c++){
		printf("%d\n",lank[c]);
	}
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> mountain;
    for(int i = 0; i < 10; i++){
      cin >> mountian.at(i);
    }
    sort(moutain.begin(), moutain.end());

    for (int i = 0; i < 3; i++) {
        cout << moutain.at(i) << endl;
    }
}

  
}

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

int main()
{
    int A[10];
       
    for (int i=1; i<=10; i++)
    {
        cin >> A[i];
    }
    
    sort (A, A+10);
    reverse(A, A+10);
    
    cout << endl;
    
    for (int e=1; e<=10; e++)
    {
        cout << A[e] << endl;
}

    return 0;
    
}

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

int main(){
    int a[11];
    for(int i = 0; i < 10; i++){
        cin >> a[i];
    }
    sort(a, a + 10);
    for(int i = 9; i >= 7; i--){
        cout << a[i] << endl;
    }
}