Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

var rdr = bufio.NewReaderSize(os.Stdin, 1000000)

func readLine() string {
	buf := make([]byte, 0, 1000000)
	for {
		l, p, e := rdr.ReadLine()
		if e != nil {
			panic(e)
		}
		buf = append(buf, l...)
		if !p {
			break
		}
	}
	return string(buf)
}

func toInt(str string) int {
	n, _ := strconv.Atoi(str)
	return n
}

func main() {
	lst := make([]int, 0)
	for i := 0; i < 10; i++ {
		lst = append(lst, toInt(readLine()))
	}
	sort.Ints(lst)
	for i := 9; i > 6; i-- {
		fmt.Println(lst[i])
	}
}

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

void swap(int *a, int *b){
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
	
}

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

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

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

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

int main() {
	int m[10];
	for(int i=0; i<9; i++) cin >> m[i];
	sort(a, a+10);
	for(int i=9; i>6; i++) cout << m[i] << endl;

	return 0;
}

C++: #include<iostream>
#include<queue>
using namespace std;
int main ()
{
	priority_queue<int> q; int n;
	while (cin >> n) q.push (n);
	for (n = 3; n--;) cout << q.top() << endl, q.pop ();
}

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+1<<":";
    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<<first<<endl;
  cout<<second<<endl;
  cout<<third<<endl;
  
  return 0;
}

C++: #include <stdio.h>
#define N 10

int main(void){
 int i=1,data[3],t;
 for(i=0;i<3;i++) data[i] = 0;
 while(1){
  scanf("%d",&t);
  if(t>data[0]){
   data[2] = data[1];
   data[1] = data[0];
   data[0] = t;
  }
  else if(t>data[1]){
   data[2] = data[1];
   data[1] = t;
  }
  else if(t>data[2]) data[2] = t;
  i++;
  if(i>N) break;
 }
 for(i=0;i<3;i++) printf("%d\n",data[i]);
 return 0;
}

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

int main(){
	int first = 0;
	int second = 0;
	int third = 0;
	int num;
	for(int i = 0;i<=9;i++)
	{

		cin >> num;
		
		if(num >= first)
		{
			third = second;
			second = first;
			first = num;
		}else if(num >= second)
		{
			third = second;
			second = num;
		}else if(num >=third)
		{
			third = num;
		}
		
	}
	
	cout << endl << first << endl << second << endl <<  third;
	
    return 0;
}

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

int main () {

int a[3] = {0, 0, 0};
int n;

for (int i = 0; i < 10; i++) {
    cin >> n;

    if (n >= a[0]) {
        a[2] = a[1];
        a[1] = a[0];
        a[0] = n;

    }

    else if (n < a[0] && n >= a[1]) {
        a[2] = a[1];
        a[1] = n;
    }

    else if (n < a[1] && n >= a[2]) {
        a[2] = n;
    }

}



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


    return 0;


}

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

using namespace std;

int main(void) {
		vector<int> height;
		for(int n; cin >> n; height.push_back(n)) ;
		sort(height.begin(), height.end(), greater<int>() );
		for(int i=0; i < 3; i ++){
				cout << height[i] << endl;
		}
		return 0;
}

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

int main()
{
	short int h[10] = {}, n[3] = {};
	for (int i = 0; i < 10; i++) {
		cin >> h[i];
		if (h[i] > h[n[0]]) {
			n[2] = n[1];
			n[1] = n[0];
			n[0] = i;
		}
		else if (h[i] > h[n[1]]) {
			n[2] = n[1];
			n[1] = i;
		}
		else if (h[i] > h[n[2]]) {
			n[2] = i;
		}
	}
	for (int i = 0; i < 3; i++) {
		cout << h[n[i]] << endl;
	}
	return 0;
}

C++: #include<stdio.h>
int main()
{
	long long int a[100],i,mountain1,mountain2,mountain3;
	for(i=0;i<10;i++)
	{
		scanf("%lld",&a[i]);
	}
	mountain1=a[0];
	for(i=1;i<10;i++)
	{
		if(mountain1<a[i])
		{
			mountain1=a[i];
		}
	}
	mountain2=0;
	for(i=0;i<10;i++)
	{
		if(a[i]<mountain1)
		{
		    if(a[i]>mountain2)
            mountain2=a[i];
		}
	}
	mountain3=0;
	for(i=0;i<10;i++)
    {
        if(mountain1>a[i] && mountain2>a[i])
        {
            if(a[i]>mountain3)
                mountain3=a[i];
        }
    }
	printf("\n%lld\n%lld\n%lld\n",mountain1,mountain2,mountain3);
	return 0;
}

C++: #import<iostream>
#import<deque>
#import<algorithm>
using namespace std;main(){int n,i;deque<int> h;for(i=0;i<10;++i)cin>>n,h.push_back(n);sort(h.begin(),h.end());for(i=9;i>6;i--)cout<<h[i]<<endl;}

C++: #include <bits/stdc++.h>
using namespace std;
int main()
{
	vector<int> arr;
	for(int i=1;i<=10;i++)
	{
		int a;
		cin>>a;
		arr.push_back(a);
	}
	sort(arr.begin(),arr.end());
	cout<<arr[arr.size()-1]<<endl;
	cout<<arr[arr.size()-2]<<endl;
	cout<<arr[arr.size()-3]<<endl;
	return 0;
}

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

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

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

  cout<<h[0]<<h[1]<<h[2];

  return 0;
}

C++: #include <stdio.h>

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

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

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

	printf("%d\n", hills[9]);
	printf("%d\n", hills[8]);
	printf("%d\n", hills[7]);

	return (0);
}

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

int main()
{
	std::vector<int> height(10);

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

	std::sort(height.begin(),height.end());

	std::cout << height[9] << '\n';

	std::cout << height[8] << '\n';

	std::cout << height[7] << '\n';
}

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

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

C++: #include <iostream>
#include <algorithm>
using namespace std;
int main(){
	int num = 0;
	int mountains[10];
	for (int i = 0; i < 10; i++){
		cin >> mountains[i];
	}
	sort(mountains,mountains+10);
	cout << mountains[0] << endl;
	cout << mountains[1] << endl;
	cout << mountains[2] << endl;
	return 0;
}

C++: #include<iostream>
#include<queue>
#include<cstdio>

using namespace std;
priority_queue<int> Q;

int H;
int main(){
  for(int i= 0;i < 10;i++){
     scanf("%d",&H);
     Q.push(H);
  }
  for(int i= 0;i < 3;i++){
    cout << Q.top() <<endl;
    Q.pop();
  }
  return 0;
}

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

void cswap(int &x, int &y)
{
    int tmp = x;
    x = y;
    y = tmp;
}

int main(void){

	int a[11],max1,max2,max3;

	for (int i=1; i<11; i++){
		while (true){ 
		cout << "山の高さ" << i << "（整数）" ;			
		cin >> a[i];
		if ((cin.good() == 1) && (a[i] >= 0) && (a[i] <= 10000)) {
			break;
		}
		}	
	}

	max1 = a[1];

	for (i=2; i<11; i++){
		if (max1 < a[i]){
			cswap(max1,a[i]);
		}
	}
	max2 = a[2];

	for (i=3; i<11; i++){
		if (max2 < a[i]){
			cswap(max2,a[i]);
		}
	}
	max3 = a[3];

	for (i=4; i<11; i++){
		if (max3 < a[i]){
			cswap(max3,a[i]);
		}
	}


		cout << max1 << endl;
		cout << max2 << endl;
		cout << max3 << endl;
		

return 0;
	}