Go: package main

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

func getsAsIntArray() (line []int) {
	scanner := bufio.NewScanner(os.Stdin)

	for scanner.Scan() {
		str := scanner.Text()
		if str == "" {
			break
		}
		data, err := strconv.Atoi(str)
		if err != nil {
			break
		}
		line = append(line, data)
	}

	return
}

func main() {

	lines := getsAsIntArray()
	sort.Sort(sort.Reverse(sort.IntSlice(lines)))
	for i, v := range lines {
		if i < 3 {
			fmt.Println(v)
		}
	}
}

C++: #include <iostream>

int main(){
int a[10];
int max = 0;
int max2 = 0;
int max3 = 0;

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

for(int i = 0; i< 10; i++){
if(max < a[i]) max = a[i];
}

for(int i = 0; i< 10; i++){
if(max2 < a[i] && max != a[i]) max2 = a[i];
}

for(int i = 0; i< 10; i++){
if(max3 < a[i]&& max != a[i]&& max2 != a[i]) max3 = a[i];
}


return 0;
}

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

int main(){
    
    std::priority_queue<int> pq;
    int a;
    while(std::cin >> a) {
        pq.push(a);    }
    
    for (int i = 0; i < 3; ++i) {
        std::cout << pq.top() << "\n"; pq.pop();
    }
    
    return 0;
}

C++: #include<stdio.h>

int main(void) {

	int fnit[10];
	int i = 0;

	int top = 0;
	int second = 0;
	int third = 0;

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

	/* トップを求める処理 */

	top = fnit[0];

	for(i = 1; i <= 9; i++) {

		if( top < fnit[i] ) {
			third = second;
			second = top;
			top = fnit[i];
		}
		else if (second < fnit[i]) {
			third = second;
			second = fnit[i];
		}
		else if(third < fnit[i]) {
			third = fnit[i];
		}
	}

	/* --- */

	printf("%d\n", top);
	printf("%d\n", second);
	printf("%d\n", third);


	return 0;
}

C++: #include <iostream>

int main()
{
    int h[10];

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

    for (int i = 0; i < 9; i++)
    {
        for (int n = 0; n < 9 - i; n++)
        {
            if (h[n] < h[n+1])
            {
                std::swap(h[n], h[n+1]);
            }
        }
    }
    
    for (int i = 0; i < 3; i++)
    {
        std::cout << h[i] << std::endl;
    }

    return 0;
}

C++: //
//  main.cpp
//  kyougi
//
//  Created by 寺林 一旭 on 2018/08/27.
//  Copyright © 2018年 寺林 一旭. All rights reserved.
//

#include <iostream>
#include <vector>
using namespace std;
int main() {
 
    int num;
    vector<int> list;
    while(cin)
    {
    cin >> num;
        list.push_back(num);
   
    }
    sort(list.begin(), list.end(), greater<int>());
    for(int i = 0 ; i< 3 ; i++)
    {
        cout<< list[i] <<endl;
    }
    
    
    return 0;
}

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

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

int main()
{
	vector<int> data(10,0);
	
	for(int i=1;i<=10;i++) 
		cin >> data[i];
	
	sort(data.begin(),data.end(),greater<int>());
	
	for(int j=0;j<=2;j++)
		cout << data[j] << endl;
	
	return 0;
}

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

void exc( int& a, int& b ) {
    int buf;
    buf = a;
    a = b;
    b = buf;
}

int main() {
    int ns[10];
    int fst, scd, trd;
    for( int i = 0; i < 10; ++i ) {
        cin >> ns[i];
        if( i == 0 ) {
            fst = scd = trd = ns[ i ];
            continue;
        }
        if( ns[ i ] >= trd ) {
            trd = ns[ i ];
            if( trd > scd ) {
                exc( trd, scd );
                if( scd > fst ) {
                    exc( scd, fst );
                }
            }
        }
    }
    cout << fst << endl
         << scd << endl
         << trd << endl;
}

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

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

#define INPUTSIZE 10

int main() {
    int inputs[INPUTSIZE];
    for (int i = 0; i < INPUTSIZE; i++) cin >> inputs[i];

    sort(inputs, inputs + INPUTSIZE);

    for (int i = 1; i <= 3; i++) cout << inputs[INPUTSIZE - i] << endl;

    return 0;
}

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

int main(){

int i,j,h,temp;
int m[10];



//入力
for(i=0; i<10; i++){
   cin >> h;

   if(h >= 0 and h <= 10000){
       m[i]=h;
   }else{
   i--;
   }
}



//ソート
    for (i = 0; i < 9; i++) {
        for (j = 9; j > i; j--) {
            if (m[j - 1] > m[j]) {  
                temp = m[j];  
                m[j] = m[j - 1];
                m[j - 1] = temp;
            }
        }
    }
    
    
//出力
for (i = 9; i > 6; i--) {
   cout << m[i] << "\n";
}

    return 0;
}

C++: #include <stdio.h>
main(){
  int a[10],i,max,m2,m3;
  i=0;
  while(i<10){
    printf("height of mountain %d ",i+1);
    scanf("%d",&a[i]);
    i++;
  }
  max=a[0];
  i=0;
  while(i<10){
    if(a[i]>max) max=a[i];
  i++;
  }

if(a[0]==max) m2=a[1];
 else m2=a[0];
i=0;

  while(i<10){
    if(a[i]>m2&&a[i]!=max) m2=a[i];
    i++;
  }

if(a[0]!=max&&a[0]!=m2) m3=a[0];
 else if(a[1]!=max&&a[1]!=m2) m3=a[1];
 else if(a[2]!=max&&a[2]!=m2) m3=a[2];
 else m3=a[3];
i=0;

  while(i<10){
    if(a[i]>m3&&a[i]!=max&&a[i]!=m2) m3=a[i];
    i++;
  }

printf("height of the 1st mountain %d\nheight of the 2nd mountain d\nheight of the 3rd mountain &d\n",max,m2,m3);
return 0; 
}

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

int main(){
    vector<int> v(9);
    for(int i = 0; i< 10; i++){
        cin >> v[i];
    }
   sort(v.begin(),v.end());
   cout << v[0] << endl;
   cout << v[1] << endl;
   cout << v[2] << endl;
}

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

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

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

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

int main() {
	int temp; int count = 0;
	multiset<int, greater<int>> mul;
	while (cin >> temp) mul.insert(temp);
	for (auto itr : mul) {
		cout << itr << endl; count++;
		if (count == 3) break;
	}
	return 0;
}

C++: #include<stdio.h>

int main(void){
  // double data = 0.0123;
  //printf("%f %e",data,data);
  int data[10],i,j,k;
  for(i=0;i<10;i++)
    scanf("%d",&data[i]);
  for(i=0;i<10;i++){
    for(j=i+1;j<10;j++){
      if(data[i] < data[j]){
	k =data[i];
	data[i] = data[j];
	data[j] =k;
	  }
    }
  }
  for(i=0;i<3;i++)
    printf("%d\n",data[i]);
}

C++: A=[]
for i in range(10):
	A.append(int(input()))
A.sort()
A.reverse()
for i in range(3):
	print(A[i])

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 <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0; i<(n); i++)
#define REP2(i,x,n) for(int i=x; i<(n); i++) 
#define ALL(n) (n).begin,(n).end
/*???????±±?????????3?????????*/
int main()
{
    vector<int> vc;
    int N;
    while( cin >> N )
    {
        vc.push_back( N );
    }
    sort( vc.begin(), vc.end(), greater<int>() );
    REP( i, 3 )
    {
        cout << vc[ i ] << endl;
    }
    return 0;
}