Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func read() string {
	sc.Scan()
	return sc.Text()
}

func main() {
	sc.Split(bufio.ScanLines)

	s := make([]int, 10)
	for i := 0; i < 10; i++ {
		s[i], _ = strconv.Atoi(read())
	}
	sort.Sort(sort.Reverse(sort.IntSlice(s)))
	fmt.Println(s[0])
	fmt.Println(s[1])
	fmt.Println(s[2])
}

C++: //#pragma comment(linker,"/STACK:102400000,102400000")
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
#define M 40000
using namespace std;
 typedef struct yyyy
 {
     int h;
     double s[5],t[5];
 }yyy;

double h;
double l[3],r[3];
const double pi=acos(-1);
double a[205];
yyy p[3][205];
double eps=1e-6;
int n;
typedef struct nnode
{
    double tt;
    int flag;
}node;
node as[200000];
int tim;

  void cjj(int n)
  {
      int i,j;
      for (i=1;i<=n;i++)
      for (j=1;j<=2;j++)
      {
          double k1,k2;
          double a1,a2;
          double si,co;
          double ll,h;
          double v=a[i];
          double k=v*sqrt(v*v+2*9.8*h)/9.8;
          int flag;
          k1=l[j]/k;
          k2=r[j]/k;
          if (k1>1+eps) {p[j][i].h=0;continue;}
          si=l[j]/k;

          co=sqrt(1-si*si);
          ll=sqrt(2*v*v+2*9.8*h-2*v*sqrt(v*v+2*9.8*h)*co);
          h=l[j]*9.8/ll;
          if (ll<sqrt(2*9.8*h)+eps) flag=-1;
          else flag=1;

          a1=acos(h/v)*flag;

          co=-sqrt(1-si*si);
          ll=sqrt(2*v*v+2*9.8*h-2*v*sqrt(v*v+2*9.8*h)*co);
          h=l[j]*9.8/ll;
          if (ll<sqrt(2*9.8*h)+eps) flag=-1;
          else flag=1;

          a2=acos(h/v)*flag;

          if (a1<a2) swap(a1,a2);

          if (k2>1-eps) {p[j][i].h=1;p[j][i].s[1]=a1;p[j][i].t[1]=a2;continue;}
          else
          {
              p[j][i].h=2;
              p[j][i].s[1]=a1;
              p[j][i].t[2]=a2;
          }

          si=r[j]/k;

          co=sqrt(1-si*si);
          ll=sqrt(2*v*v+2*9.8*h-2*v*sqrt(v*v+2*9.8*h)*co);
          h=r[j]*9.8/ll;
          if (ll<sqrt(2*9.8*h)+eps) flag=-1;
          else flag=1;

          a1=acos(h/v)*flag;

          co=-sqrt(1-si*si);
          ll=sqrt(2*v*v+2*9.8*h-2*v*sqrt(v*v+2*9.8*h)*co);
          h=r[j]*9.8/ll;
          if (ll<sqrt(2*9.8*h)+eps) flag=-1;
          else flag=1;

          a2=acos(h/v)*flag;

          if (a1<a2) swap(a1,a2);

          p[j][i].s[2]=a2;
          p[j][i].t[1]=a1;

      }



  }

int main()
{
        freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        int k,kk;
        int i;
        while(~scanf("%d",&n))
        {
            int c,maxx=0;
            if(n==0)break;
            scanf("%lf%lf%lf%lf%lf",&h,&l[1],&r[1],&l[2],&r[2]);
            for(i=1;i<=n;i++)
            scanf("%lf",&a[i]);

            cjj(n);
            tim=0;
            for(i=1;i<=n;i++)
            {
                a[++tim].tt
            }
        }

        return 0;
}

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

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

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

int main(){
  vector<int> v(10);
  for(int i = 0; i < 10; i++){
    cin >> v.at(i);
  }
  sort(v.begin(), v.end(), greater<int>());
  for(int i = 0; i < 3; i++){
    cout << v.at(i) << endl;
  }
}

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;
??
}

C++: #include<stdio.h>

int main(void){
    
    int MountHigh[10] = {0};
    int TopHillsThree[3] = {0};
    int ActionNum = 0;
    int MountNum = 0;
    
    //??\?????¨
    fscanf(stdin,"%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d\n%d",
           &MountHigh[0],
           &MountHigh[1],
           &MountHigh[2],
           &MountHigh[3],
           &MountHigh[4],
           &MountHigh[5],
           &MountHigh[6],
           &MountHigh[7],
           &MountHigh[8],
           &MountHigh[9]);
    
    //???????????¨???
    for(ActionNum = 1; ActionNum < 10; ActionNum++){
        for(MountNum = 0; MountNum < (10 - ActionNum); MountNum++){
            if(MountHigh[MountNum] < MountHigh[MountNum + 1]){
                const int Temp = MountHigh[MountNum + 1];
                MountHigh[MountNum + 1] = MountHigh[MountNum];
                MountHigh[MountNum] = Temp;
            }
        }
    }
    
    //??£??\??¨???
    TopHillsThree[0] = MountHigh[0];
    TopHillsThree[1] = MountHigh[1];
    TopHillsThree[2] = MountHigh[2];
    
    printf("%d\n%d\n%d\n",
           TopHillsThree[0],
           TopHillsThree[1],
           TopHillsThree[2]);
    
    return(0);
}

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

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

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

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

	for(int i=9;i>6;--i){
		cout << tall[i] << endl;
	}

	return 0;
}

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

using namespace std;

int main()
{
	int mon[10];
	for(int i = 0;i <10; i++){
		cin >> mon[i];
	}
	
	int first = 0;
	for(int i = 0; i < 10; i++){
		if(first < mon[i]) first = mon[i];
	}
	
	int second = 0;
	for(int i = 0; i < 10; i++){
		if(second < mon[i] && mon[i] != first) second = mon[i];
	}
	
	int third = 0;
	for(int i = 0; i < 10; i++){
		if(third < mon[i] && mon[i] != first && mon[i] != second) third = mon[i];
	}
	
	printf("%d\n%d\n%d\n", first, second, third);
	
	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 n;
		cin >> n;
		v.push_back(n);
	}

	partial_sort(v.begin(), v.begin() + 3, v.end()
		, [](const int& x, const int& y) { return x > y;});
	
	for_each(v.begin(), v.begin() + 3, [](int x) {
		cout << x << endl;
	});
}

C++: //
//  main.cpp
//  0001
//
//  Created by 竹内 文登 on 13/07/13.
//  Copyright (c) 2013年 竹内 文登. All rights reserved.
//

#include <iostream>
using namespace std;

int main()
{
    
    int i = 10,m[10];
    
    while(i>0){
        cin >> m[i];
        i--;
    }
    
    int max = m[0],index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;;
    m[index] = 0;
    
    max = m[0];
    index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;
    m[index] = 0;
    max = m[0];
    index = 0;
    
    for(i = 0; i < 10 ; i++){
        if(max < m[i]){
            max = m[i];
            index = i;
        }
    }
    cout << m[index] << endl;

    m[index] = 0;
    
    return 0;
}

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


int main(void){

	int a[11],i,max1,max2,max3;

	for (int i=1; i<11; i++){
		while (true){ 
		cout << "山の高さ" << i << "（整数）" ;			
		cin >> a[i];
		if ((a[i] >= 0) && (a[i] <= 10000)) {
			break;
		}
		}	
	}


	max1 = 0;
	max2 = 0;
	max3 = 0;

	for (i=1; i<11; ++i){
		if (a[max1] < a[i]){max1 = i;}
	}
		for (i=1;i<11;++i){
			if (a[i] < a[max1]){
				if (a[max2] < a[i]){max2 = i;}
		}
		}
			for (i=1;i<11;++i){
			if (a[i] < a[max2]){
				if (a[max3] < a[i]){max3 = i;}
		}
			}

		cout << a[max1] << endl;
		cout << a[max2] << endl;
		cout << a[max3] << endl;
		

		return 0;
	}