Go: package main

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

var scanner= bufio.NewScanner(os.Stdin)

func main() {
	result := make([][]int, 4)
	for i :=range result {
		result[i] = make([]int, 2)
	}
	for scanner.Scan() {
		buf := strings.Split(scanner.Text(), " ")
		l, _ := strconv.ParseFloat(buf[0], 64)
		r, _ := strconv.ParseFloat(buf[1], 64)
		if 1.1 <= l {
			result[0][0]++
		} else if 0.6 <= l && l < 1.1 {
			result[1][0]++
		} else if 0.2 <= l && l < 0.6 {
			result[2][0]++
		} else {
			result[3][0]++
		}
		if 1.1 <= r {
			result[0][1]++
		} else if 0.6 <= r && r < 1.1 {
			result[1][1]++
		} else if 0.2 <= r && r < 0.6 {
			result[2][1]++
		} else {
			result[3][1]++
		}
	}
	ans := make([][]string, 4)
	for i :=range ans {
		ans[i] = make([]string, 2)
	}
	for i := range result {
		for j := range result[i] {
			ans[i][j] = strconv.Itoa(result[i][j])
		}
	}
	for i := 0; i < 4; i++ {
		fmt.Println(strings.Join(ans[i], " "))
	}
}

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

main(){
	double p,q ;
	int cnt[4][2] = {} ;
	while( cin >> p ){
		if( cin.eof() ) break ;
		cin >> q ;
		
		if( p >= 1.1 ) cnt[0][0]++ ;
		else if( p >= 0.6 ) cnt[1][0]++ ;
		else if( p >= 0.2 ) cnt[2][0]++ ;
		else cnt[3][0]++ ;
		
		if( q >= 1.1 ) cnt[0][1]++ ;
		else if( q >= 0.6 ) cnt[1][1]++ ;
		else if( q >= 0.2 ) cnt[2][1]++ ;
		else cnt[3][1]++ ;
	}
	
	for( int i=0 ; i<4 ; i++ ){
		cout << cnt[i][0] << " " << cnt[i][1] << endl ;
	}
}

C++: /*  http://acm-solution.blogspot.jp/2010/08/acm-uva-100-3n-1-problem.html */
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cctype>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <map>
#include <sstream>
#include <utility>
#include <set>
#include <math.h>
using namespace std;

#define SIZE 1000001

static unsigned short table[SIZE];

unsigned short calcCycleLength( register unsigned long n )
{
        if(n < SIZE && table[n])
                return table[n];
        if(n & 1)
        { /* if n is odd */
                 if( n < SIZE)
                 {
                         /* calc two steps at one */
                         table[n] = 2 + calcCycleLength( (3*n+1) >> 1 );
                         return table[n];
                 }
                 else
                 {
                          return 2 + calcCycleLength( (3*n+1) >> 1 );
                  }
         }
         else
        {
                  if( n < SIZE)
                 {
                          table[n] = 1 + calcCycleLength( n >> 1 ); /* n/2 */
                          return table[n];
                 }
                 else
                 {
                          return 1 + calcCycleLength( n >> 1 );
                  }
        }
}

int main()
{
        unsigned long fn = 0;
        unsigned long sn = 0;
        unsigned long i;
        short out = 0, temp;
        table[1] = 1;
        while(cin>>fn>>sn)
        {
                 if( fn > sn)
                {
                        for( i = sn; i <= fn; ++i )
                        { 
                                 temp = calcCycleLength( i );
                                 if( temp > out)
                                         out = temp;
                         }
                }
                else
                {
                        for( i = fn; i <= sn; ++i )
                       {
                                temp = calcCycleLength( i );
                                if( temp > out)
                                        out = temp;
                        }
                }
                cout<< fn<<" "<< sn<<" "<< out;
                out = 0;
        }
        return 0;
}

C++: #include<stdio.h>

int main(){
	int i=0,lt[4]={0},rt[4]={0};
	double left[41],right[41];
	while(scanf("%lf",&left[i])!=EOF){
		scanf("%lf",&right[i]);
		if(left[i]>=1.1) lt[0]++;
		else if(left[i]>=0.6) lt[1]++;
		else if(left[i]>=0.2) lt[2]++;
		else lt[3]++;
		if(right[i]>=1.1) rt[0]++;
		else if(right[i]>=0.6) rt[1]++;
		else if(right[i]>=0.2) rt[2]++;
		else rt[3]++;
		i++;
	}
	for(i=0;i>4;i++){
		printf("%d %d",lt[i],rt[i]);
	}
	return 0;
}

C++: #include <bits/stdc++.h>
#define R(i,n) for(int i=0;i<n;i++)
using namespace std;
int main(){
  double c,b;
  int a[4][2]={0};
  while(cin>>c){
    if(c>1.0)a[0][0]++;
    else if(c>0.5)a[0][1]++;
    else if(c>0.1)a[0][2]++;
    else a[0][3]++;
    cin>>b;
    if(b>1.0)a[1][0]++;
    else if(b>0.5)a[1][1]++;
    else if(b>0.1)a[1][2]++;
    else a[1][3]++;
  }
  R(i,4)cout<<a[i][0]<<' '<<a[1][i]<<endl;
}

C++: #include<stdio.h>
int main(void)
{
	int a1,a2,b1,b2,c1,c2,d1,d2;
	float l,r;
	a1=0,a2=0,b1=0,b2=0,c1=0,c2=0,d1=0,d2=0;
	while(scanf("%f %f",&l,&r)!=EOF){
		if(l<0.2) d1++;
		else if(l>=0.2&&0.6>l) c1++;
		else if(l>=0.6&&1.1>l) b1++;
		else a1++;
		if(r<0.2) d2++;
		else if(r>=0.2&&0.6>r) c2++;
		else if(r>=0.6&&1.1>r) b2++;
		else a2++;
	}
	printf("%d %d\n%d %d\n%d %d\n%d %d\n",a1,a2,b1,b2,c1,c2,d1,d2);
	return 0;
}

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

int l[4],r[4];

int main(void){
	double x,y;

	while(cin>>x>>y){
		if(x >= 1.1)
			l[0]++;
		else if(x >= 0.6)
			l[1]++;
		else if(x >= 0.2)
			l[2]++;
		else
			l[3]++;

		if(y >= 1.1)
			r[0]++;
		else if(y >= 0.6)
			r[1]++;
		else if(y >= 0.2)
			r[2]++;
		else
			r[3]++;
	}
	for(int i=0;i<4;i++){
		cout<<l[i]<<" "<<r[i]<<endl;
	}

	return 0;
}

C++: #include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <cstdlib>
using namespace std;

int main() {
	int right[4]={},left[4]={};
	float r,l;
	
	while(cin>>l>>r){
		if(r>=1.1)++right[0];
		else if(r>=0.6)++right[1];
		else if(r>=0.2)++right[2];
		else ++right[3];
		
		if(l>=1.1)++left[0];
		else if(l>=0.6)++left[1];
		else if(l>=0.2)++left[2];
		else ++left[3];
	}
	for(int i=0;i<4;++i){
		cout<<left[i]<<" "<<right[i]<<endl;
	}
	
	
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
    int eyep[2][4]={0};
    double eye[2];
    while(cin>>eye[0]>>eye[1]){
        for(int i=0;i<2;i++){
            if(eye[i]>=1.1)eyep[i][0]++;
            else if(eye[i]>=0.6)eyep[i][1]++;
            else if(eye[i]>=0.2)eyep[i][2]++;
            else eyep[i][3]++;
        }

    }
    for(int i=0;i<4;i++){
        cout<<eyep[0][i]<<" "<<eyep[1][i]<<endl;
    }
}

C++: #include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <cstring>
#include <deque>
#include <cstdio>
#include <cmath>
#include <complex>
#include <iostream>
#include <iterator>

using namespace std;

#define reep(i,f,t) for(int i=f ; i<int(t) ; ++i)
#define rep(i,n) reep(i, 0, n) 

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> pii;

typedef vector<double> vd;
typedef vector<vd> vvd;

int main()
{
	double s[2];
	int num[2][4] = {{0}};
	while(scanf("%lf%lf", &s[0], &s[1]) != EOF){
		const double bound[] = {0.2, 0.6, 1.1};
		rep(i, 2)
			num[i][upper_bound(bound, bound+3, s[i])-bound]++;
	}
	rep(i, 4)
		printf("%d %d\n", num[0][3-i], num[1][3-i]);

	return 0;
}

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

int main(){
  double a, b;
  int c[8] = {0};

  while(cin >> a >> b){
    if(a<0.2)
      c[6]++;
    else if(a<0.6)
      c[4]++;
    else if(a<1.1)
      c[2]++;
    else
      c[0]++;
    if(b<0.2)
      c[7]++;
    else if(b<0.6)
      c[5]++;
    else if(b<1.1)
      c[3]++;
    else
      c[1]++;
  }
  cout << c[0] << " " << c[1] << "\n" << c[2] << " " << c[3] << "\n" << c[4] << " " << c[5] << "\n" << c[6] << " " << c[7] << "\n";
  return 0;
}