Go: package main

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

var maxint = 10000
var scanner = bufio.NewScanner(os.Stdin)

func nextInt() (int, error) {
	scanner.Scan()
	return strconv.Atoi(scanner.Text())
}

func main() {
	scanner.Split(bufio.ScanWords)
	arr := make([]int, 10)
	for i := range arr {
		n, _ := nextInt()
		arr[i] = n
	}

	sort.Slice(arr, func(i, j int) bool {
		return arr[i] >= arr[j]
	})

	arrStr := fmt.Sprintf("%+v", arr[0:3])
	arrStr = arrStr[1:(len(arrStr) - 1)]
	arrStr = strings.Replace(arrStr, " ", "\n", -1)
	fmt.Println(arrStr)
}

C++: #include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>

using namespace std;


int main(){

	int i,j;
	int top1=0, top2=0, top3=0;
	int temp1, temp2;

	for(i=0 ; i<10 ; i++){
		cin >> temp1;
		if(temp1 >= top1){
			top3 = top2;
			top2 = top1;
			top1 = temp1;
		}else if((temp1 < top1) && (temp1 >= top2)){
			top3 = top2;
			top2 = temp1;
		}else if(temp1 >= top3){
			top3 = temp1;
		}
	}

		cout << top1 << endl;
		cout << top2 << endl;
		cout << top3 << endl;

	return 0;
}

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

int main() {
  int array[10], tmp;

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

  for(int j = 0; i < 10; j++) {
    for(int k = 0; k < 9; k++) {
      if (array[k] < array[k+1]) {
        tmp = array[k];
        array[k] = array[k+1];
        array[k+1] = tmp;
      }
    }
  }

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

  return 0;
}

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[9]<<endl<<a[8]<<endl<<a[7]<<endl;
	return 0;
}

C++: #include<stdio.h>
int main(void)
{
	int a,b,max= 0,max2=0,max3=0;
	for(a 1;a<=10;a++){
		scanf("%d",&b);
		if(b>max) {
			max=b;
		}
		else if(b>max2){
			max2=b;
		}
		else if(b>max3){
			max3=b;
		}
	}
		printf("%d\n %d\n %d\n",max,max2,max3);
		return 0;
}

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

int main(){
	int a[10];

	for (int i = 0; i != 10; i++)
		std::cin >> a[i];
	std::sort(a, a + 10, std::greater<int>());
	for (int j = 0; j != 3; j++)
		std::cout << a[j] << std::endl;
	return 0;
}

C++: #include<stdio.h>
#include<math.h>
#include<algorithm>

int main()
{
	int x[10];
	for (int i = 1; i <= 10; i++) {
		scanf("%d", &x[i]);
	}
	int m = 0;
	for (int i = 10000; i >= 0; i--) {
		for (int j = 1; j <= 10; j++) {
			if (i == x[j]) {
				printf("%d\n", i);
				m++;
			}
			if (m == 3) {
				break;
			}
		}
		if (m == 3) {
			break;
		}
	}
	return 0;
}

C++: #include<iostream>
#include<queue>
using namespace std;
priority_queue<int> q1;
int main(){
	int i,j;
	for(i=0;i<10;i++){
		cin>>j;
		q1.push(j);
	}
	for(i=0;i<3;i++){
		cout<<q1.top()<<endl;
	}
	return 0;
}

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

int main(){
	vector<int> v(3,0);
	int s;
	for(int i = 0; i < 10; i++){
		sort(v.begin(),v.end());
		cin >> s;
		if(v[0] < s){
			v[0] = s;
		}
	}

	sort(v.begin(),v.end());
	for(int i = 0; i < 3; i++){
		cout << v[2-i] << endl;
	}

}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <string>
#include <sstream>
#include <complex>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <set>
#include <iomanip>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

using namespace std;

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

C++: #include<iostream>
using namespace std;
int main(){
	int T,t3=0,t2=0,t1=0;
	for(int i=0;i>10;i++){
		cin>>T;
		if(T>=t1){
			t1=T;
			t2=t1;
			t3=t2;
		}
		else if(T>=t2){
			t2=T;
			t3=t2;
		}
		else if(T>=t3){
			t3=T;
		}
	}
	cout<<t1<<endl<<t2<<endl<<t3;
	return 0;
}

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

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

    return 0;
}

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

int main()
{
	int n[10],i=0;

	while (cin >> n[i])
		i++;
	sort(n,n+i,greater<int>());
	for (int j=0; j < 3; j++) {
		cout << n[j] << endl;
	}
	return 0;
}

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

int main() {
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);

  int i, input;
  vector<int> heights;
  for (i = 0; i < 10; i++) {
    cin >> input;
    heights.push_back(input);
  }

  sort(heights.rbegin(), heights.rend());
  cout << heights.at(0) << endl;
  cout << heights.at(1) << endl;
  cout << heights.at(2) << endl;

  return 0;
}

C++: #include<iostream>

int main(){
    int a[10],i,j,n;
    for(i=0;i<10;i++){
        std::cin>>a[i];
        }
        
        for(i=0;i<9;i++){
        	for(j=i+1;j<10;j++){
        		if(a[i]<a[j]){
			n=a[i];
			a[i]=a[j];
			a[j]=n;
			}
		}	
	}
	for(i=0;i<3;i++){
	std::cout<<a[i]<<std::endl;
	}       	
	
	return 0;
}

C++: #include <stdio.h>
#include <stdlib.h>
#include <math.h>
#pragma warning(disable:4996)

int main()
{

	int MontainIn[10];

	for (int nCnt = 0; nCnt < 10; nCnt++)
		scanf("%d", &MontainIn[nCnt]);

	for (int nCnt = 0; nCnt < 10; nCnt++)
	{
		for (int nCnt2 = 0 ; nCnt2 < 10; nCnt2++)
		{
			if (nCnt2 == nCnt)
				continue;

			if (MontainIn[nCnt] > MontainIn[nCnt2])
			{
				MontainIn[nCnt] ^= MontainIn[nCnt2];
				MontainIn[nCnt2] ^= MontainIn[nCnt];
				MontainIn[nCnt] ^= MontainIn[nCnt2];
			}
		}
	}

	for (int nCnt = 0; nCnt < 3; nCnt++)
		printf("%d\n", MontainIn[nCnt]);

	return 0;
}

C++: #include <stdio.h>

void bubble_sort(int[10]);

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

	bubble_sort(height);

	printf("--\n");
	for(i=9; i>6; --i){
		printf("%d\n", height[i]);
	}
	
	return 0;
}

void bubble_sort(int a[10]){
	int i, j, k;
	for(i=9; i>0; --i){
		for(j=0; j<i; ++j){
			if(a[j+1] < a[j]){
				k = a[j+1];
				a[j+1] = a[j];
				a[j] = k;
			}
		}
	}
}

C++: #include <iostream>
#include <array>
#include <utility>

template<class T>
T input()
{
	T val;
	std::cin >> val;
	return val;
}

int main()
{
	std::array<int, 10> high;
	for (int i = 0; i < 10; ++i)
		high[i] = input<int>();

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

	std::cout << high[9] << " " << high[8] << " " << high[7] << std::endl;
}

C++: #include<cstdio>

int partition(int A[], int p, int r){
    int x = A[r];
    int i=p-1;
    for(int j=p; j<r; j++){
        if(A[j] <= x){
            i++;
            int temp = A[i];
            A[i] = A[j];
            A[j] = temp;
        }
    }
    int temp = A[i+1];
    A[i+1] =A[r];
    A[r] =temp;
    return i+1;
}

void quickSort(int A[], int p, int r){
    if(p<r){
        int q = partition(A, p, r);
        quickSort(A, p, q-1);
        quickSort(A, q+1, r);
    }
}

int main(int argc, char const *argv[])
{
    int H[10];
    for(int i=0; i<10; i++) scanf("%d", &H[i]);

    quickSort(H, 0,10-1);
    for(int i=0; i<3; i++) printf("%d\n", H[9-i]);
    return 0;
}

C++: #include <stdio.h>
main(){
  int h[10];
  int st,nd,rd,i;
  st = 0;
  nd = 0;
  rd = 0;
  for(i=0;i<10;i++){
    scanf("%d",&h[i]);
    if(h[i]>=st){
      st = h[i];
    }else if(h[i]>=nd){
      nd = h[i];
    }else if(h[i]>=rd){
      rd = h[i];
    }
  }
  printf("%d\n%d\n%d\n",st,nd,rd);
}