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;
int main(){
int input;
int first;
int second;
int third;

for(int i,i<10,i++){
cin>>input;
if(first<input){
 first = input;
}else if(second<input){
 second = input;
}else if(third<input){
 third = input;
}


}
cout<<first<<endl<<second<<endl<<third;<<endl;
return 0;

}

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

using namespace std;

int main()
{
	int i, num;
	deque<int> mountainheight;
	for ( i = 0; i < 10; i++ ) {
		scanf("%d",&num);
		mountainheight.push_back(num);
	}
	sort( mountainheight.begin(), mountainheight.end(), greater<int>() );

	deque<int>::iterator it = mountainheight.begin();
	for( i = 0; i < 3; i++ ) {
		cout << *it << endl;
		it++;
	}

	return 0;
}

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

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

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

#define pb push_back
  
using namespace std;

int main(void){
  int n;
  vector<int> height;

  for(int i = 0;i < 10;i++){
    cin >> n;
    height.pb(n);
  }
  sort(height.begin() , height.end());
  
  for(int i = 9; i > 6;i--){
    cout << height.at(i) << endl;
  }  
  return 0;
}

C++: #include<iostream>

using namespace std;

int main(void){

	int h;
	int i;
	int best[3]={0,0,0};

	for(i=0;i<10;i++){

		cin>>h;

		if(best[0] < h ){
			best[2] = best[1];
			best[1] = best[0];
			best[0] = h;
		}
		else if(best[1] < h){
			best[2] = best[1];
			best[1] = h;
		}else if(best[2] < h){
			best[2] =h;
		}
	}

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

	return 0;
}

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

int main()
{
	int m[10];
	for (int i=0; i<10; ++i)
		cin >> m[i];
	sort(m, m+10);
	for (int i=10; i>7; --i)
		cout << m[i] << '\n';
	return 0;
}

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

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

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

int gunung[10];

int main()
{
	for(int a=0;a<10;a++)
	{
		scanf("%d",&gunung[a]);
	}
	sort(gunung,gunung+10);
	for(int a=9;a>6;a--)
	{
		printf("%d\n",gunung[a]);
	}
	return 0;
}

C++: #include<iostream>

void bubblesort(int *M){

  int u = 0,temp;

  while(u!=9){
    for(int i=9;i>u;i--){
      if(M[i]>M[i-1]){
        temp = M[i];
        M[i] = M[i-1];
        M[i-1] = temp;
      }
    }
    ++u;
  }
}
int main(){

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

  bubblesort(M);

  std::cout << M[0] << std::endl << M[1] << std::endl << M[2] << std::endl;

  return 0;
}

C++: #include<stdio.h>
int main(void)
{
	int i,j,n,temp;
	int data[10];
	n = 1;
	for(i=0; i<10; i++){
		printf("%d ",n);
		n++;
		scanf("%d",&data[i]);
	}

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

	}

		printf("%d\n",data[9]);
		printf("%d\n",data[8]);
		printf("%d\n",data[7]);
	return 0;
}

C++: #include <bits/stdc++.h>
#define ll long long
#define un unsigned
#define de double
#define pi acos(-1.0)
#define FF first
#define SS second
#define pb push_back
#define mp make_pair
#define mem(ae, value) memset(ae, value, sizeof(ae))
#define all(x) x.begin( ), x.end( )
#define UNIQUE(x) x.resize(unique(all(x)) - x.begin())
#define FASTER ios_base::sync_with_stdio(0)
#define loop(begin, end) for(u int i=begin; i<=end; i++)
#define Read freopen("in.txt", "r", stdin)
#define Write freopen("out.txt", "w", stdout)
#define nl '\n'

using namespace std;

template<class T> inline T sq(T x) { return x*x; }
template <class T> inline T gcd(T a, T b) { if(b == 0) return a; return gcd(b, a%b); }
template <class T> inline T lcm(T a, T b) { return ( a/gcd(a, b) ) * b; }
template <class T> inline T power(T b, T p)
{
    if(p == 0) return 1;
    if(p == 1) return b;
    if(p&1) return b*power(b, p-1);
    else return sq(power(b, p>>1));
}

int main(int argc, char **argv)
{
    vector<int> v;
    int i=0;
    while(i<10)
    {
        int n; cin >> n;
        v.pb(n);
        i ++;
    }
    sort(all(v), greater<int>());
    cout << v[0] << nl << v[1] << nl << v[2] << nl;
    v.clear( );
    
    return 0;
}

C++: #include<stdio.h>

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

    for (i = 0; i < 10; i++)
        printf("%d\n", height[i]);

    int max1 = 0;
    for(i = 0; i < 10; i++)
        if (height[i] >= max1)
            max1 = height[i];

    int max2 = 0;
    for(i = 0; i < 10; i++)
        if (max1 >= height[i] >= max2)
            max2 = height[i];

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

    printf("%d\n", max1);
    printf("%d\n", max2);
    printf("%d\n", max3);

    return 0;
}

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

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

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

using namespace std;

int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);
	int height[10];
	for (int i = 0; i < 10; i++)
		cin >> height[i];
	sort(height, height + 10);
	for (int i = 9; i >= 7; i--)
		cout << height[i] << endl;

	return 0;
}

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

int main() {
	std::list<int> mountain;
	int height;

	for(int i=1; i<=10; ++i){
		std::cin >> height;
		mountain.push_back(height);
	}

	for(int i=1; i<=3; ++i){
		std::list<int>::iterator max_it = std::max_element(mountain.begin(), mountain.end());
		std::cout << *max_it << std::endl;
		mountain.erase(max_it);
	}

	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
bool func(int a,int b)
{
    return a>b;
}
int main()
{
    int i,j,ara[100000];
    for (i=0;i<10;i++)
        cin>>ara[i];
    sort(ara,ara+10,func);
    for (i=0;i<3;i++)
        cout<<ara[i]<<endl;

}

C++: #include <bits/stdc++.h>

int main() {

    std::priority_queue<int, std::vector<int>, std::greater<int> > pq;
    std::stack<int> st;
    int tmp;
    for (int i = 0; i < 10; i++) {
        std::scanf("%d", &tmp);
        if (pq.size() == 3) {
            if (pq.top() < tmp) {
                pq.pop();
                pq.push(tmp);
            }
        }
        else {
            pq.push(tmp);
        }

    }

    while(!pq.empty()) {
        st.push(pq.top());
        pq.pop();
    }
    for (int i = 0; i < 3; i++) {
        std::cout << st.top() << std::endl;
        st.pop();
    }


    return 0;


}

C++: #include <bits/stdc++.h>

using namespace std;

int main() {
  int a[10];
  for (int i = 0; i < 10; i++) {
    scanf("%d", &a[i]);
  }
  sort(a, a + 10);
  reverse(a, a + 10);
  for (int i = 0; i < 3; i++) {
    printf("%d\n", a[i]);
  }
  return 0;
}