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 <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <iostream>
#include <map>
#include <numeric>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;

#define FOR(i,s,e) for (int i = int(s); i != int(e); i++)
#define REP(i,e) for (int i = 0; i != int(e); i++)
#define FORIT(i, A) for (auto i : A)
#define ISEQ(c) (c).begin(), (c).end()
#define PRINT(x) cout << (x) << endl
#define SZ(x) ((int)(x).size())

int main(int argc, char const *argv[])
{
	int h;
	int max[3] = {0, 0, 0};
	while(scanf("%d", &h) != EOF)
	{
		if (max[0] < h)
		{
			max[2] = max[1];
			max[1] = max[0];
			max[0] = h;
		}
		else if (max[1] < h)
		{
			max[2] = max[1];
			max[1] = h;
		}
		else if (max[2] < h)
		{
			max[2] = h;
		}
	}
	printf("%d\n%d\n%d\n", max[0], max[1], max[2]);
	return 0;
}

C++: #include<iostream>

using namespace std;

int main() {
	int a[100] = { 0 };
	for (int i = 0; i < 10; i++) {
		cin >> a[i];
	}
	int big1, big2, big3;
	big1 = a[0];
	big2 = big3 = 0;
	for (int k = 1; k < 10; k++) {
		if (a[k] > big1) {
			big3 = big2;
			big2 = big1;
			big1 = a[k];
		}
		else if (a[k] > big2) {
			big3 = big2;
			big2 = a[k];
		}
		else if (a[k] > big3) {
			big3 = a[k];
		}
	}
	cout << big1 << " " << big2 << " " << big3 << endl;
	return 0;
}

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

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

C++: #include<bits/stdc++.h>
using namespace std;
int main()
{
    int n=10;
    int ara[12];
    for(int i=0;i<n;i++)
    {
        cin>>ara[i];
    }
    sort(ara,ara+n);
        for(int i=n-1;i>=7;i--)
    {
        cout<<ara[i]<<endl;
    }
    return 0;

}

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

using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VL;
typedef vector<VL> VVL;
typedef pair<int, int> PII;

#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
#define MOD 1000000007
#define INF (1LL<<25)     //33554432
#define PI 3.14159265359
#define EPS 1e-12
//#define int ll

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

C++: #include<iostream>
using namespace std;
int main()
{
    int n,m;
    while(cin>>n>>m)
    {
                    --m;
                    if(((n/m)%2==0)&&n%m==0) cout<<"NO"<<endl;
                    else cout<<"YES"<<endl;
    }
    return 0;
}

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

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

C++: #include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define all(a) (a).begin(),(a).end()
#define pb emplace_back
#define INF (1e9+1)

int main(){
    vector<int> v(10);
    rep(i,10)cin>>v[i];
    
    sort(all(v),greater<int>());
    
    rep(i,3)cout<<v[i]<<endl;
}

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

#define DEBUG

#ifndef DEBUG 
#define fprintf (void)
#endif 

int main(void){
	
	int i,rec;
	int high[3]={0,0,0};
	
	for(i=0;i<10;i++){
		scanf("%d",&rec);
		if(rec>=high[0]){
			high[2]=high[1];
			high[1]=high[0];
			high[0]=rec;
		}else if(rec>=high[1]){
			high[2]=high[1];
			high[1]=rec;
		}else if(rec>=high[2]){
			high[2]=rec;
		}
	}
	
	for(i=0;i<3;i++){
		printf("%d\n",high[i]);
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main() {
int A[3];int a,b,c;
for(int i=0;i<10;i++){cin>>a;if(a>A[0]){b=A[0];A[0]=a;c=A[1];A[1]=b;A[2]=c;}else if(a>A[1]){b=A[1];A[1]=a;A[2]=b;}else if(a>A[2]){A[2]=a;}}
cout<<A[0]<<endl<<A[1]<<endl<<A[2]<<endl;return 0;}

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

int main(){
    int temp;
    int key=-1;
    int data[3]={0};
    for(int i=0;i<10;i++){
        cin>>temp;
        for(int j=0;j<3;j++){
            if(temp>data[j])
            key=j;
        }
        if(key>=0){
            data[key]=temp;
            key=-1;
        }
    }
    for(int i=2;i>-1;i--){
        cout<<data[i]<<endl;
    }
        return 0;
}

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

int mountains[10];

int main(int argc, const char * argv[])
{
    for(int i=0;i<sizeof(mountains);i++){
        std::cin >> mountains[i];
    }
    
    std::sort(mountains, mountains+sizeof(mountains));
    
    for (int i = 0; i < sizeof(mountains); ++i)
        std::cout << mountains[i] << '\n';
    
    return 0;
}

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

C++: #include <iostream>
#include <cstdlib>
#include <fstream>

int main(int argc, char *argv[]){
	//	std::ifstream datafile(argv[1]); //input datafile
	std::string str;
	int mt_height[10] = {}; //height of mountain
	int ans[3] = {}; // top 3 height of mountain. 0 -> no.1 1 -> no.2 2 -> no.3

	// if(datafile.fail()){
	// 	std::cout << "error : can't open this file." << std::endl;
	// 	exit(1);
	// }

	//input 10 height of mountain
	for(size_t i = 0; i < 10; i++){
		std::getline(std::cin, str);
		sscanf(str.c_str(), "%d", &mt_height[i]);

		if((mt_height[i] < 0) || (mt_height[i] > 10000)){
			std::cout << "error : out of constraints" << std::endl;
			exit(1);
		}
	}

	//select top 3 height of mountain and sort ans[]
	for(size_t i = 0; i < 10; i++){
		if(ans[0] < mt_height[i]){
			ans[2] = ans[1];
			ans[1] = ans[0];
			ans[0] = mt_height[i];
		}else if(ans[1] < mt_height[i]){
			ans[2] = ans[1];
			ans[1] = mt_height[i];
		}else if(ans[2] < mt_height[i]){
			ans[2] = mt_height[i];
		}
	}

	//output ans[]
	for(size_t i = 0; i < 3; i++){
		std::cout << ans[i] << std::endl;
	}

	return 0;
}

C++: 1819
2003
876
2840
1723
1673
3776
2848
1592
922

C++: #include<iostream>
#include<vector>
using namespace std;
int main(){
	int a=0;
	std::vector<int> vec(10);
	for(int i=0;i<10;i++){
		std::cin>>vec[i];
	}
	for(int d=0;d<3;d++){
		for(int i=0;i<10;i++){
			if(vec[i]>a)a=vec[i];
		}
		std::cout<<a<<std::endl;
		for(int i=0;i<10;i++){
			if(vec[i]==a)vec[i]=0;
		}
		a=0;
	}
	return 0;
}

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

int main(){
  int height, list[10];

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

  for(int i=0; i<9; i++){
    for(int j=9; j>i; j--){
      if(list[j]>list[j-1]){
	swap(list[j], list[j-1]);
      }
    }
  }

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

C++: #include <iostream>

using namespace std;

void reverse(int *array, int length) {
	int i;
	int j;
	for(i=0;i<length-1;i++){
		for(j=i+1;j<length;j++){
			if(array[i]<array[j]){
				int temp=array[i];
				array[i]=array[j];
				array[j]=temp;
			}
		}
	}
}

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