Go: package main

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

func main() {
        fp := os.Stdin
        scanner := bufio.NewScanner(fp)
        var lst [3]int

        for scanner.Scan() {
                num, _ := strconv.Atoi(scanner.Text())
                if lst[0] < num {
                        lst[2] = lst[1]
                        lst[1] = lst[0]
                        lst[0] = num
                } else if lst[1] < num {
                        lst[2] = lst[1]
                        lst[1] = num
                } else if lst[2] < num {
                        lst[2] = num
                }
        }

        for _, i := range lst {
                fmt.Printf("%d\n", i)
        }
}

C++: #include<bits/stdc++.h>
#include<cstdio>
#include<sstream>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<algorithm>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<fstream>
#include<numeric>
#include<string>
#include<vector>
#include<cstring>
#include<map>
#include<iterator>

using namespace std;
#define EPS 1e-9
#define MAX 505
#define pb push_back
#define mp make_pair
#define ins insert
#define fi first
#define se second
#define pi acos(-1.0)
#define mod 100000007
#define inf 2147483647
#define ll long long int
#define sss stringstream
#define oss ostringstream
#define iss istringstream
#define llu long long unsigned

#define _sq(a) (a)*(a)
#define sz(a) ((int)a.size())
#define gcd(a,b)    __gcd(a,b)
#define lcm(a,b) ((a)*((b)/gcd(a,b)))
#define _max3(a,b,c) max(a, max(b,c))
#define _min3(a,b,c) min(a, min(b,c))
#define FOR(i, n) for(i=0; i<(int)n; i++)
#define FOR1(i, n) for(i=1; i<=(int)n; i++)
#define mem(a) memset(a, 0, sizeof(a))
#define _set(a) memset(a,-1,sizeof(a))
#define FORI(i, a, b) for(i=a; i>=(int)b; i--)
#define FORab(i, a, b) for(i=a; i<=(int)b; i++)
#define popcount(n) __builtin_popcount(n)
#define popcountl(n) __builtin_popcountll(n)
#define sort_rev(a) sort(a.rbegin(), a.rend())
#define sort_all(a) sort(a.begin(), a.end())
#define dis_twopoints(x1,y1,x2,y2) sqrt(_sq(x1-x2) + _sq(y1-y2))
#define foreach(i,n) for(__typeof((n).begin())i =(n).begin();i!=(n).end();i++)

//If Long Long (mask & (1LL << k))
#define check(mask, k) (mask & (1 << k))
#define set1(mask, k) (mask | (1 << k))
#define set0(mask ,k) (mask & (~(1<<k)))

#define SD(a) scanf("%d",&a)
#define SLF(a) scanf("%lf",&a)
#define SC(a) scanf("%c",&a)
#define SS(a) scanf("%s",a)
#define SLLD(a) scanf("%lld", &a)
#define Si64(a) scanf("%I64d", &a)

#define READ(f) freopen(f, "r", stdin)
#define WRITE(f) freopen(f, "w", stdout)
int f[60];
int main()
{
    int i,hi[11];
    for(i=0;i<10;i++)
    {
        cin>>hi[i];
    }
    sort(hi,hi+10);
    cout<<hi[9]<<endl<<hi[8]<<endl<<hi[7]<<endl;

    return 0;
}

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

int main()
{
	int a[10];
	int data_size = sizeof(a) / sizeof(a[0]) - 1;
	for (int i=0;i<=data_size;i++)
		cin >> a[i];
	sort(a,a+sizeof(a) / sizeof(a[0]));
	for (int j=0;j<=data_size;j++)
		cout << a[j] << ",";
}

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

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

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

C++: #include<stdio.h>
int main(){
int yama[10];
int temp;
int i,j;

for(i=0;i<10;i++){
scanf("%d",&yama[i];
}
for(i=0;i<10;i++){
for("j=0;j<10;j++){
if(yama[i]>yama[j]){
temp=yama[j];
yama[j]=yama[i];
yama[i]=yama[j];
}
}
}
for(i=0;i<3;i++){
printf("%d\n",yama[i]);
}
return 0;
}

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

int main() {
	constexpr int MAX_N = 10;
	vector<int> height(3, 0);

	for(int i = 0; i < MAX_N; ++i) {
		int h;
		cin >> h;

		for(int j = 0; j < 3; ++j) {
			if(height[j] < h) {
				swap(height[j], h);
			}
		}
	}

	for(const auto &e : height) {
		cout << e << "\n";
	}

	return EXIT_SUCCESS;
}

C++: #include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define vec_input(v) for(auto it=v.begin();it!=v.end();it++){cin>>*it;}
#define vec_output(v) for(auto it=v.begin();it!=v.end();it++){if(it!=v.begin())cout<<" ";cout<<*it;}cout<<endl;
#define vec_debug(v) for(auto it=v.begin();it!=v.end();it++){cerr<<*it<<" ";}cerr<<endl;
#define yn(ans) cout<<(ans?"Yes":"No")<<endl
#define YN(ans) cout<<(ans?"YES":"NO")<<endl
using namespace std;
using ll = long long;
template <typename T>T digitsum(T n);
template <typename T>bool isPrime(T n);
template <typename T>vector<pair<T, T>> prime_factor(T n);
long long int intpow(long long int,long long int);
template <typename T>T intlog(T);
long long int combination(long long int,long long int);
long long int series_sum(long long int);

int main(){
    vector<int> vec(10);
    vec_input(vec);
    sort(rall(vec));
    rep(i,3){
        cout<<vec[i]<<endl;
    }
}

C++: #include <iostream>
using namespace std;
 
int main()
{
    int A[10],h1,h2,h3,i,pos1,pos2;
    for(i=0;i<10;i++)
    cin>>A[i];
    h1=A[0];
    pos1=0;
    for(i=1;i<10;i++)
    {
        if(A[i]>h1)
        {
            h1=A[i];
            pos1=i;
        }
    }
    A[pos1]=-1;
    h2=A[1];
    pos2=1;
    for(i=2;i<10;i++)
    {
        if(A[i]>h2)
        {
            h2=A[i];
            pos2=i;
        }
    }
    A[pos2]=-1;
    h3=A[2];
    for(i=3;i<10;i++)
    {
        if(A[i]>h3)
            h3=A[i];
    }
    cout<<h1<<"\n"<<h2<<"\n"<<h3;
}

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

C++: #include<stdio.h>
int main(void){
	int i,j,a=0,b=0,c=0,yama;
	
	for(i=0;i<=9;i++){
		scanf("%d",&yama);
		
		if(a<yama){
			
			a=yama;
			
		}else if(b<yama){
			
			b=yama;
			
		}else if(c<yama){
			
			c=yama;
			
		}
	}
	
	printf("%d\n%d\n%d\n",a,b,c);
	
	return 0;
}

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

using namespace std;

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

C++: #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
  vector<int> v;
  for (int i = 0; i < 10; i++) {
    int a;
    cin >> a;
    v.push_back(a);
  }
  sort(v.begin(), v.end(), greater<int>());
  for (int i = 0; i < 3; i++)
    cout << v.at(i) << endl;
}

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

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

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

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

C++: #include<iostream>
using namespace std;
int main(){
  int a[10],i,j,temp;
  for(i=0;i<10;i++){
    cin>>a[i];
  }
  for(i=0;i<10-1;i++){
    for(j=0;j<10-i-1;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);
}