Go: package main

import (
	"fmt"
	"sort"
)

func main() {
	mt := make([]int, 10)

	for i := 0; i < 10; i++ {
		fmt.Scan(&mt[i])
	}

	sort.Ints(mt)
	fmt.Printf("%d\n%d\n%d\n", mt[9], mt[8], mt[7])

}

C++: #include <iostream>
#include <fstream>
#include <string> 
#include <cstring>
#include <cmath>  
#include <cstdlib>
#include <ctime>
#include <vector>
#include <algorithm>
#include <numeric>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <deque>
#include <functional>
#include <cctype>
#include <list>
//#include <boost/multiprecision/cpp_int.hpp>

#define BIT(a) (1 << (a))
#define EPS (1e-10)

using namespace std;
//using namespace boost::multiprecision;

const long long MOD = 1000000007;
const int COUNTER_CLOCKWISE = 1;
const int CLOCKWISE = -1;
const int ONLINE_BACK = 2;
const int ONLINE_FRONT = -2;
const int ON_SEGMENT = 0;

class Point{
    public:
    double x, y;

    Point(double x = 0, double y = 0): x(x), y(y) {}
    
    Point operator+(Point p){return Point(x + p.x, y + p.y);}
    Point operator-(Point p){return Point(x - p.x, y - p.y);}
    Point operator*(double a){return Point(a * x, a * y);}
    Point operator/(double a){return Point(x / a, y / a);}

    bool operator < (const Point &p) const {
        return y != p.y ? y < p.y : x < p.x;
    }

    double norm(){return x * x + y * y;}
};
typedef Point Vector;
typedef vector<Vector> Polygon;

double cross(Vector a, Vector b){
    return a.x*b.y - a.y*b.x;
}

double dot(Vector a, Vector b){
    return a.x * b.x + a.y * b.y;
}

int ccw(Point p0, Point p1, Point p2){
    Vector a = p1 - p0;
    Vector b = p2 - p0;
    if (cross(a, b) > EPS)return COUNTER_CLOCKWISE;
    if (cross(a, b) > -EPS)return CLOCKWISE;
    if (dot(a, b) < -EPS)return ONLINE_BACK;
    if (a.norm() < b.norm())return ONLINE_FRONT;

    return ON_SEGMENT;
}

Polygon andrewScan(Polygon s){
    Polygon u, l;
    if (s.size() < 3) return s;
    sort(s.begin(), s.end());
    u.push_back(s[0]);
    u.push_back(s[1]);
    l.push_back(s[s.size()-1]);
    l.push_back(s[s.size()-2]);
    
    for (size_t i = 2; i < s.size(); i++){
        for (size_t n = u.size(); n >= 2 && ccw(u[n-2], u[n-1], s[i]) == COUNTER_CLOCKWISE; n--){
            u.pop_back();
        }
        u.push_back(s[i]);
    }

    for (int i = (int)s.size() - 3; i >= 0; i--){
        for (size_t n = l.size(); n >= 2 && ccw(l[n-2], l[n-1], s[i]) == COUNTER_CLOCKWISE; n--){
            l.pop_back();
        }
        l.push_back(s[i]);
    }

    reverse(l.begin(), l.end());
    for (size_t i = u.size() - 2; i >= 1; i--) l.push_back(u[i]);

    return l;
}

long long mod_pow(long long x, long long n){
    long long res = 1;
    for(int i = 0;i < 60; i++){
        if(n >> i & 1) res = res * x % MOD;
        x = x * x % MOD;
    }
    return res;
}


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

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

int main()
{
	int high[10];
	int i = 0;
	
	while (i < 10){
		cin >> high[i];
		i++;
	}
	
	i = 0;
	
	reverse(high[i], high[i + 9]);
	
	while (i < 3){
		cout << high[i] << endl;
	}
	
	return (0);
}

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

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

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

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

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

C++: #include<cstdio>
#include<algorithm>
#include<functional>
using namespace std;
int main(void)
{
	int i;
	int yama[10];
	for(i=0;i<10;i++){
		scanf("%d",&yama[i]);
	}
	sort(yama,yama+10,greater<int>());
	for(i=0;i<3;i++){
		printf("%d\n",yama[i]);
	}
	return 0;
}

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

int main()
{
    int height[10];
    for(int i=0; i<10; i++) std::cin >> height[i];
    std::sort(height, height+10);
    for(int i=9; i>6; i--) std::cout << height[i] << std::endl;;
    return 0;
}

C++: #include<iostream>
#include<vector>
int main(){
	std::vector<int> vec(10);
	for(int i=0;i<10;i++){
		std::cin>>vec[i];
	}
	int a=0;
	for(int i=0;i<10;i++){
		if(a<vec[i])a=vec[i];
	}
	std::cout<<a<<std::endl;
	int b=0;
	for(int i=0;i<10;i++){
		if(vec[i]==a)vec[i]=0;
		if(b<vec[i])b=vec[i];
	}
	std::cout<<b<<std::endl;
	int c=0;
	for(int i=0;i<10;i++){
		if(vec[i]==b)vec[i]==0;
		if(c<vec[i])c=vec[i];
	}
	std::cout<<c<<std::endl;
	return 0;
}

C++: #include <stdio.h>
void sortarry(int* Array,int n )
{
int Tmp=0;
int i=0;
int j=0;

for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(Array[i]<Array[j] )
{
Tmp=Array[i];
Array[i]=Array[j];
Array[j]=Tmp;
}
}
}

return ;
}

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

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

for(i=0;i<3;i++)
{
printf("%d\n",Array[i] );
}
}

C++: #include <iostream>

int main(int argc, const char * argv[])
{
    using namespace std;
        int max = 0;
        int second = 0;
        int third = 0;
    
    int n[10];
    
    for(int i = 0; i < 10; i++) cin >> n[i];
    sort(n,n+10,greater<int>());
    max = n[0];
    second = n[1];
    third  = n[2];
    cout << max << "\n" << second << "\n" << third << "\n";
    return 0;
}

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

int main(){
	
	int h[10],a=0,b=0,c=0;
	for(int i=0;i<10;i++)cin>>h[i];
	
	for(int i=0;i<10;i++){
		if(h[i]>a){c=b;b=a;a=h[i];}
		else if(h[i]>b){c=b;b=h[i];}
		else if(h[i]>c)c=h[i];
	}
	
	cout<<a<<endl<<b<<endl<<c<<endl;
	
	return 0;
}

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

int main() {
	// your code goes here
	int data[10],ansdata[3];
	for (int j = 0;j<3;j++) {
		ansdata[j] = 0;
	}
	for (int i=0;i<=9;i++) {
		cin >> data[i];
		if (i==0) {
			ansdata[0] = data[i];
		}
		if (i>0) {
			if (data[i] > ansdata[2]) {
				if (data[i] > ansdata[1]) {
					ansdata [2] = ansdata [1];
					if (data[i] > ansdata[0]) {
						ansdata [1] = ansdata [0];
						ansdata [0] = data [i];	
					}
					else {
						ansdata[1] = data[i];
					}
					
				}
				else {
					ansdata[2] = data[i];
				}
			}

		}
	}
	cout << ansdata[0] << endl << ansdata[1] << endl << ansdata [2] <<endl;
	return 0;
}

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


using namespace std;

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

C++: #include "bits/stdc++.h"
using namespace std;
#define REP(i,m,n) for(long long i=m;i<n;++i)
#define INF 10000000000000000
#define MOD 1000000007
#define ll long long
#define mp make_pair
#define all(v) v.begin(),v.end()

vector<int>v;

int main(){
	REP(i,0,10){
		int tmp;
		cin>>tmp;
		v.push_back(tmp);
	}
	sort(all(v));
	printf("%d\n%d\n%d\n",v[9],v[8],v[7]);
	return 0;
}

C++: #include<iostream>
#include<array>
int main(void){
std::array<int,10> h;
int tmp;
for(auto& e : h){
std::cin>>e;
}
std::sort(h.begin(),h.end());
for(int i=0;i<3;i++){
std::cout<<h[i]<<std::endl;
}

return 0;
}