Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextInt() int {
	scanner.Scan()
	i, e := strconv.Atoi(scanner.Text())
	if e != nil {
		panic(e)
	}
	return i
}
func main() {
	heighs := make([]int, 10)
	for i := range heighs {
		heighs[i] = nextInt()
	}
	sort.Sort(sort.Reverse(sort.IntSlice(heighs)))
	for i := 0; i < 3; i++ {
		fmt.Println(heighs[i])
	}
}

C++: #include<stdio.h>


int main()
{
    int a[1000], i , j , k,n, rem;
    //scanf("%d", &n);
    for(i=0; i<10; i++)
    {
        scanf("%d", &a[i]);
    }
 for(i=0; i<10; i++)
    {for(j=0; j<10; j++)
      {

       if(a[j]<a[j+1])
        {
        rem=a[j+1];
        a[j+1]=a[j];
        a[j]=rem;
        }
      }
    }


printf("\n ");
    for(i=1; i<4; i++)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}

C++: #include<stdio.h>

int main()

{
    int i,num,n,count;
    scanf("%d",&n);

      for(i=1;i<=n;i++)

    {
        int num;
        scanf("%d",&num);
        count=0;
        while(num!=0){

            if(num%2==1)
                count++;
                num/=2;
        }
        if(count%2==1)
            printf("Case %d: odd\n",i);
        else
            printf("Case %d: even\n",i);


    }
    return 0;
}

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

C++: #include <iostream>
#include <algorithm>
#include <deque>
#include <functional>
using namespace std;
int main(){
	int num;
	deque<int> h;
	for(int i = 0; i < 10; i++){
		cin >> num;
		h.push_back(num);
	}
	sort(h.begin(), h.end(), greater<int>());
	deque<int>::iterator it = h.begin();
	while(it != h.begin()+3){
		cout << *it << endl;
		++it;
	}
	return(0);
}

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

#include<vector>
#include<algorithm>

using namespace std;
int main()
{
	vector<int> vec;
	int temp;
	for (int i = 0; i < 10; i++)
	{
		cin >> temp;
		vec.push_back(temp);
	}
	make_heap(vec.begin(), vec.end());
	for (int i = 0; i < 3; i ++ )
	{
		cout << vec.front()<<endl;
		pop_heap(vec.begin(), vec.end());
		vec.pop_back();
	}
}

C++: #define _USE_MATH_DEFINES
#include <iostream>
#include <vector>
#include <math.h>
#include <string>
#include <string.h>
#include <stack>
#include <algorithm>
#include <stdio.h>
#include <functional>
using namespace std;

//??°?????????????????°

void function()
{
    //??¢??°
}
 
int main(){
    int max1 = 0;
    int max2 = 0;
    int max3 = 0;
    for (int i = 0; i < 9; i++){
    	int a;
		cin >> a;
		if(a > max1){
		max3 = max2;
		max2 = max1;
		max1 = a;
		}else if(a > max2){
			max3 = max2;
			max2 = a;
		}else if(a > max3){
			max3 = a;
		}
    }
    cout << max1 << endl << max2 << endl << max3 << endl;
    return 0;
}

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

C++: #include <functional>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <iomanip>
#include <fstream>
#include <climits>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <bitset>
#include <queue>
#include <stack>
#include <cmath>
#include <ctime>
#include <deque>
#include <list>
#include <map>
#include <set>
using namespace std;

typedef long long LL;
typedef unsigned int ui;
typedef unsigned long long ULL;

typedef pair < int , int > ii;
typedef pair < LL  , LL  > ll;

typedef vector <int>  vint;
typedef vector <bool> vbool;
typedef vector <long> vlong;

#define sz(x)			((int)x.size())
#define tin(x)			scanf("%d",&x)
#define all(x)			x.begin(),x.end()
#define Set(b,a)		memset(b,a,sizeof b)
#define print1(x)		printf("Case %d:",x++)
#define tin2(x,y)		scanf("%d%d",&x,&y)
#define tin3(x,y,z)		scanf("%d%d%d",&x,&y,&z)
#define loop(i,i0,in)	for(int i=i0 ; i<in ; i++)
#define rep(i,n)		for(int i=0 ; i<(n) ; i++)
#define _rep(i,n)		for(int i=n-1 ; i>=0 ; i--)
#define _loop(i,in,i0)	for(int i=in-1 ; i>=i0 ; i--)
#define Fore(it, x)		for(typeof (x.begin()) it = x.begin(); it != x.end (); it++)

const int maxn = 10+5;

int seq[maxn];
     
int main()  
{  
#ifdef Online_Judge
	freopen("a.in","r",stdin);
#endif
	rep(i,10)
		tin(seq[i]);
	sort(seq,seq+10);
	_loop(i,10,7)
		printf("%d\n",seq[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);
}

C++: #include <stdio.h>
int main()
{
	int a[10];
	int i,j,k;
	for (i=0;i<10;i++)
			scanf("%d",&a[i]);
		for (i=0;i<9;i++)
		{
			for(j=i+1;j<10;j++)
			{
				if(a[j]>a[i])
				{
					k=a[i];
					a[i]=a[j];
					a[j]=k;
				}
			}
			if(i==2)
				printf("%d\n%d\n%d\n",a[0],a[1],a[2]);
		}
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
	int a[10],k=0,tmp,i;
	for(i=0;i<10;i++)
		cin>>a[i];
	while(1){//無限ループ
		for(i=0;i<10;i++){
			if(a[i]<a[i+1]){//もし昇順でない場合
				tmp=a[i];//隣接しあう値を昇順に入れ替える
				a[i]=a[i+1];
				a[i+1]=tmp;
				k++;//カウント
			}
		}
		if(k==0) break;//入れ替える必要がなくなったら終了
		k=0;//カウントの初期化
	}
	for(i=0;i<3;i++)
		cout<<a[i]<<endl;
	return 0;
}

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

using namespace std;

int main() {
	vector<int> heights;
	int meter;

	for(int index = 0; index < 10; ++index) {
		cin >> meter;
		heights.push_back(meter);
	}
	
	reverse(heights.begin(), heights.end());
	
	cout << heights[0] << endl;
	cout << heights[1] << endl;
	cout << heights[2] << endl;
	
	return 0;
}

C++: #include <stdio.h>

int main (void){
    int x1=0, x2 = 0, x3 = 0, input, s;

    for(s=0; s<10; s++){
        scanf("%d\n" ,&input);
        if(x1 < input){
            x3 = x2;
            x2 = x1;
            x1 = input;
        }else{
            if(x2 < input){
                x3 = x2;
                x2 = input;
            }else if(x3 < input) x3 = input;
        }
    }
    printf("%d\n%d\n%d\n",x1,x2,x3);
    return(0);
}

C++: #include <stdio.h>

int main() {
  int a[10];
  int i, j, index, max;
  int cnt = 0;

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

  max = a[0];
  
  while(cnt < 3) {
	for (i = 0; i < 10; i++) {
	  for (j = i + 1; j< 10; j++) {
		if(max < a[j]) {
		  max = a[j];
		  index = j;
		  break;
		}
	  }
	}
	printf("%d\n", max);
	a[index] = 0;
	max = 0;
	cnt++;
  }

  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<algorithm>
using namespace std;

#define N 10

void hoge(){
	int i;
	int h[N];
	for(i=0;i<N;i++){
	 cin>>h[i];
	}
	sort(h);
	
	cout<<h[9]<<h[8]<<h[7]<<endl;
}

int main(){
	
	hoge();
	
	return 0;
}

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

int mountain[12];

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

  cout << mountain[9] << endl
  << mountain[8] << endl
  << mountain[7] << endl;
}