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>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;

int main(){
  int a[10];
  int f=0,s=0,t=0;
  cin>>a[0];
  f=a[0];
  for(int i=1;i<10;i++){
    cin>>a[i];
    if(a[i]>f){
      s=f;
      f=a[i];}
      else if(a[i]>s){
	t=s;
	s=a[i];}
	else if(a[i]>t){
	  t=a[i];}
  }
  cout<<f<<endl;
  cout<<s<<endl;
  cout<<t<<endl;
      
    
    
    

  return 0;
}

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

int main(){
	int m[10];
	
	for(int i = 0;i < 10;i++){
		cin >> m[i];
		
		while(!((m[i] >= 0)&&(m[i] <= 10000))){
			cout << "wrong value\n";
			cin >> m[i];
		}
	}
	sort(m, m+10,greater<int>());
	
	for(int i = 0;i < 3;i++){
		cout << m[i] << "\n";
	}
	
    return 0;
}

C++: #include <cmath>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <map>
#include <numeric>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <deque>
#include <stack>
#include <bitset>
#include <functional>
#include <numeric>
#include <utility>
#include <iomanip>
#include <cstdio>
#include <cctype>
#include <queue>
#include <complex>
#include <climits>

typedef long long ll;

using namespace std;

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

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

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

	return 0;
}

C++: #include<iostream>

using namespace std;

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

int main(){
	int str,mt[10];
	int i;
	
	for(i=0;i<10;i++){
		cin >> str;
		mt[i]=str;
	}
	
	// ????????????
	int num = 1;
	while(num<=3){
		str = mt[num-1];
		for(i=num;i<=10;i++){
			if(str<mt[i]){
				str = mt[i];
				swap(mt[num-1],mt[i]);
			}
		}
		cout << mt[num-1] << "\n";
		num++;
	}
	
	return 0;
}

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

int main(){
  vector<int> mount(10,0);
  
  for(int i = 0; i < 10; i++){
    cin >> mount.at(i);
  }
  sort(mount.begin(), mount.end());
  cout << mount.at(9) << endl << mount.at(8) << endl  << mount.at(7) << endl;
}

C++: #include<iostream>
#include<vector>
#include<algorithm>
int main(void){
std::vector<int> h;
int tmp;
while(std::cin>>tmp){
h.push_back(tmp);
}
std::sort(h.begin(),h.end());
std::unique(h.begin(),h.end());
for(int i=0;i<3;i++){
std::cout<<h[i]<<std::endl;
}
 
return 0;
}

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

using namespace std;

int main()
{
	vector<int> arr(10);
	
	for(int i = 0; i < 10; i++){
		cin >> arr[i];
	}
	
	sort(arr.begin(),arr.end());
	
	printf("%d\n%d\n%d\n",arr[10],arr[9],arr[8]);
	
	return 0;
}

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


using namespace std;

int main(){
	int i, j,max;
	int m[10];
	for (i=0; i < 10; i++){
		cin >> m[i];
	}

	for (i = 0; i < 3; i++){
		max = 0;
		for (j = 1; j < 10; j++){
			if (m[j]>m[max]){
				max = j;
			}
		}
		printf("%d\n", m[max]);
		m[max] = -1;
	}

}

C++: #include "stdio.h"


int main(){
	int i,max1 = 0,max2 = 0,max3 = 0;
	int Hill[10];
	for(i = 0;i < 10;i++){
		scanf("%d",&Hill[i]);
	}
	for(i = 0;i < 10;i++){
		if(max1 < Hill[i]){
			max3 = max2;
			max2 = max1;
			max1 = Hill[i];
		}
		else if(max2 < Hill[i]){
			max3 = max2;
			max2 = Hill[i];
		}
		else if(max3 < Hill[i])max3 = Hill[i];
	}
	printf("%d\n%d\n%d\n",max1,max2,max3);
}

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

int main()
{
  int a[10];
  for (int i = 0; i < 10; i++) cin >> a[i];
  sort(a, a + 10);
  reverse(a, a + 10);

  cout << a[0] << endl;
  cout << a[1] << endl;
  cout << a[2] << endl;
}

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

C++: #include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <cstring>
#include <cctype>
#include <iostream>
#include <sstream>
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <functional>
using namespace std;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long long ll;
const double PI = 3.141592653589793238462643383279502884L;
const int LARGE_INT = 1000000007;
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define tr(c, i) for(auto i = (c).begin(); i != (c).end(); i++)
#define rtr(c, i) for(auto i = (c).rbegin(); i != (c).rend(); i++)
#define repfn(i,a,cont,next) \
  for(auto i = (a); [=](){return(cont);}(); i = [=](){return(next);}())
#define repby(i,a,b,s) repfn(i,a,i<b,i+s)
#define repab(i,a,b) repby(i,a,b,1)
#define rep(i,b) repab(i,0,b)
#define pb push_back
#define sz(c) int((c).size())

int main(int argc, char **argv)
{
  set<int> s;
  int tmp;
  rep(i, 10) {
    cin >> tmp;
    s.insert(tmp);
  }
  int i = 0;
  for (auto p = s.rbegin(); i < 3; p++, i++) {
    cout << *p << endl;
  }

  return 0;
}

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

using namespace std;

int main() {
	int height[10];

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

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

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

	return 0;
}

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

int main(void){
    int i = 0;
    int s[10];

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

    sort(s, s+10);

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

    return(0);
}

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

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

int main(){
    int i;
    int mount[10];
    int *p=&mount[0];
    for(i=0;i<10;i++){
        scanf("%d\n",p);
        p++;
    }
    sort(mount,mount+10,[](int x,int y){return x>y;});
    printf("%d\n%d\n%d",mount[0],mount[1],mount[2]);
    return 0;
}

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

void bubbleSort(vector<int> &h)
{
	int tmp;
	for (int i = 0; i < h.size() - 1; i++)
	{
		for (int j = 0; j < h.size() - 1 - i; j++)
		{
			if (h[j] < h[j + 1])
			{
				tmp = h[j + 1];
				h[j + 1] = h[j];
				h[j] = tmp;
			}
		}
	}
}

int main()
{
	vector<int> height(10);
	for (int i = 0; i < 10; i++)
	{
		cin >> height[i];
	}
	bubbleSort(height);
	for (int i = 0; i < 3; i++)
	{
		cout << height[i] << endl;
	}
	return 0;
}

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

int main(){
	vector<int> mts(10);
	for( int i=0; i<10; i++ ){
		cin >> mts[i];
	}
	sort( mts.rbegin(), mts.rend() );
	for( int i=0; i<3; i++ ){
		cout << mts[i] << endl;
	}
	return 0;
}