Go: package main

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

func main() {
        fp := os.Stdin
        scanner := bufio.NewScanner(fp)
        var lst [3]int

        for scanner.Scan() {
                num, _ := strconv.Atoi(scanner.Text())
                if lst[0] < num {
                        lst[2] = lst[1]
                        lst[1] = lst[0]
                        lst[0] = num
                } else if lst[1] < num {
                        lst[2] = lst[1]
                        lst[1] = num
                } else if lst[2] < num {
                        lst[2] = num
                }
        }

        for _, i := range lst {
                fmt.Printf("%d\n", i)
        }
}

C++: #include <iostream>

using namespace std;

int main(){
	int high[10];
	int max;
	
	int i,j,k;
	
	for(i = 0;i < 10;i++){
		cin >> high[i];
	}
	
	for(j = 0;j < 10;j++){
		max = 0;
		k = j;
		for(i = j;i < 10;i++){
			if(max < high[i]){
	        	k = i;
				max = high[i];
			}
		}
		high[k] = high[j];
		high[j] = max;
	} 
	
	for(i = 0;i < 3;i++){
		cout<<high[i]<<endl;
	}
	
	return 0;
}

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

int main() {
	int m;
	int t[3]={0};
	while(cin>>m){
		for(int i=0;i<3;i++)
			if(m>t[i]) swap(t[i],m);
	}
	for(int i=0;i<3;i++){
		cout<<t[i]<<endl;
	}
	return 0;
}

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

int main(int argc, const char * argv[]) {
    
    // input from txt
    string filename = "input.txt";
    ifstream fin(filename);
    
    if(fin.fail()){
        cout << "load fail...";
    }
    
    vector<int> heights(10);
    for (int i=0; i<10; i++){
        cin >> heights[i];
    }
    sort(heights.begin(), heights.end(), greater<int>());
    
    for (int i=0; i<3; i++){
        cout << heights[i] << endl;
    }
    
    return 0;
}

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

int main(){
	bool completed,flag;
	int result[3],buf,temp[10];
	for(int i = 0; i < 10; i++){
		cin >> temp[i];
	}
	for(int l = 0; l < 3; l++){
		while(1){
			for(int j = l; j < 9; j++){
				if(temp[j] < temp[j+1]){
					buf = temp[j+1];
					temp[j+1] = temp[j];
					temp[j] = buf;
				}
			}
			flag = false;
			for(int k = 0; k < 9; k++){
				if(temp[0] < temp[k]) flag = true;
			}
			if(flag != true){
				result[l] = temp[l];
				break;
			}
		}
	}
	cout << result[0] << endl;
	cout << result[1] << endl;
	cout << result[2] << endl;
	return 0;
}

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

C++: #include <stdio.h>
#include <functional>
#include <algorithm>
int main(){ int mt[10], i;
std::sort(mt, mt + 10);
for (i = 9; i > 6; i--)
  printf("%d\n", mt[i]);
return 0; }

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

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


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

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

C++: #include <stdio.h>
 
using namespace std;
 
 
int main(){
    int count[10001],tmp,num=3;
    for(int i=0;i<10001;i++)count[i]=0;
 
    for(int i=0;i<10;i++){
        scanf("%d",&tmp);
        count[tmp]++;
    }
 
    for(int i=10000;i>=0&&num>0;i--){
        if(count[i]>0){
            for(int k=0;k<count[i]&&num>0;k++){
                printf("%d\n",i);
                num--;
            }
        }
    }
 
    return 0;
}

C++: #include<stdio.h>
int main(void) {
	int a, b, c[12],top=0,second=0,thread=0;
	for (int i = 1; i <= 10; i++)
	{
		scanf("%d", &c[i]);
		if (c[i]>top)
		{
			second = top;
			top = c[i];
		}
		else
		{
			if (c[i]>second)
			{
				thread = second;
				second = c[i];
			}
			else
			{
				if (c[i]>thread)
				{
					thread = c[i];
				}
			}
		}
	}
	printf("%d\n%d\n%d\n", top, second, thread);
	return 0;
}

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

int main()
{
    std::vector<int> numbers;
    for (int i = 0; i < 10; i++) {
        int value;
        std::cin >> value;
        numbers.push_back(value);
    }
    
    sort(numbers.begin(), numbers.end());

    std::vector<int>::reverse_iterator it = numbers.rbegin();
    std::cout << *it++ << std::endl;
    std::cout << *it++ << std::endl;
    std::cout << *it << std::endl;

    return 0;
}

C++: #include <iostream>
using namespace std;
int main(void){
int i, j, n[10], max, temp;

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

for(i=0; i<10; i++){
max = i;
for(j = i + 1; j < 10; j++){
if(n[max] < n[j]) max = j;
}
temp = n[max];
n[max] = n[i];
n[i] = temp;

while(i==0){
cout<<temp<<endl;
break;
}
while(i==1){
cout<<temp<<endl;
break;
}
while(i==2){
cout<<temp<<endl;
break;
}

}
}

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

int main(){

	int i = 0,j=0,k=0;
	int mountain[11] = {1819,2003,876,2840,1723,1673,3776,2848,1592,922};

	for(i=0;i<10;i++){
		for(j=i+1;j<10;j++){
	if(mountain[i] < mountain[j]){
		k = mountain[j];
		mountain[j] = mountain[i] ;
		mountain[i] = k ;
	}
	}
	}

	for(i=0;i<3;i++){
		cout << mountain[i] <<"\n" ;
	}
  return 0;
}

C++: #include<stdio.h>
#define MAX 10

void bsort(int a[],int n)
{
	int i,j;
	for(i = 0 ; i < n-1 ; i++){
		for( j=n-1 ; j>i ; j--){
			if(a[j-1]<a[j]){
				int temp = a[j];
				a[j] = a[j-1];
				a[j-1] = temp;
			}
		}
	}
}

int main(void)
{
	int s[MAX];
	int i;
	
	for( i=0 ; i<MAX ; i++){
		scanf("%d",&s[i]);
	}
	
	bsort(s,MAX);
	
	for(i=0 ; i<3 ; i++){
		printf("%d\n",s[i]);
	}
}

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

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

C++: #include <stdio.h>
#define N 10

int main(void){
 int i=1,data[3],t;
 for(i=0;i<3;i++) data[i] = 0;
 while(1){
  scanf("%d",&t);
  if(t>data[0]){
   data[2] = data[1];
   data[1] = data[0];
   data[0] = t;
  }
  else if(t>data[1]){
   data[2] = data[1];
   data[1] = t;
  }
  else if(t>data[2]) data[2] = t;
  i++;
  if(i>N) break;
 }
 return 0;
}

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

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

using namespace std;

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

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

C++: #include<iostream>
using namespace std;
int main(void){
    int a[100],list[4] ={0,0,0,0},i,j;
    for(i = 1; i <= 10; i++){
        cin >> a[i];
        if(list[1] < a[i]){
            list[3] = list[2];
            list[2] = list[1];
            list[1] = a[i];
        }
        else if(list[2] < a[i]){
            list[3] = list[2];
            list[2] = a[i];
        }
        else if(list[3] < a[i]){
            list[3] = a[i];
        }
    }
    for(j = 1; j <= 3; j++){
        cout << list[j] << endl;
    }
}