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;


int main(){
	double left,right;
	int Lnin[4]={}, Rnin[4]={};
	int i;

	while(cin >> left >> right){
		if(left>=1.1){
			Lnin[0]++;
		}else if(left>=0.6){
			Lnin[1]++;
		}else if(left>=0.2){
			Lnin[2]++;
		}else{
			Lnin[3]++;
		}

		if(right>=1.1){
			Rnin[0]++;
		}else if(right>=0.6){
			Rnin[1]++;
		}else if(right>=0.2){
			Rnin[2]++;
		}else{
			Rnin[3]++;
		}
	}

	for(i=0;i<=3;i++){
		cout << Lnin[i] << " " << Rnin[i] << endl;
	}
	



}

C++: #include <cstdio>

int main(void)
{
    float r, l;
    int right[4], left[4];
    
    for (int i = 0; i < 4; i++){
        right[i] = 0;
        left[i] = 0;
    }
    
    while (scanf("%f %f", &l, &r) != EOF){
        if      (l < 0.2) left[3]++;
        else if (l < 0.6) left[2]++;
        else if (l < 1.1) left[1]++;
        else left[0]++;
        
        if      (r < 0.2) right[3]++;
        else if (r < 0.6) right[2]++;
        else if (r < 1.1) right[1]++;
        else right[0]++;
    }
    
    for (int i = 0; i < 4; i++){
        printf("%d %d\n", left[i], right[i]);
    }
    
}

C++: #define _USE_MATH_DEFINES
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<list>
#include<stack>
#include<queue>
#include<cctype>
#include<iomanip>
#include<functional>
#include<numeric>
#include<map>
#include<set>
#include<complex>
#define EPS 1e-10
using namespace std;
typedef long long llong;
int main() {
	double l, r;
	int al, ar, bl, br, cl, cr, dl, dr;
	al = ar = bl = br = cl = cr = dl = dr = 0;
	while (cin >> l >> r) {
		if (l >= 1.1)al++;
		else if (l >= 0.6)bl++;
		else if (l >= 0.2)cl++;
		else dl++;
		if (r >= 1.1)ar++;
		else if (r >= 0.6)br++;
		else if (r >= 0.2)cr++;
		else dr++;
	}
	cout << al << " " << ar << endl;
	cout << bl << " " << br << endl;
	cout << cl << " " << cr << endl;
	cout << dl << " " << dr << endl;
	return 0;
}

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

using namespace std;

int main(void) {
  int cnt[2][4] = {};
  double v[2];
  while (cin >> v[0] >> v[1]) {
    for (int i = 0; i < 2; i++) {
      if (v[i] >= 1.1) cnt[i][0]++;
      else if (v[i] >= 0.6) cnt[i][1]++;
      else if (v[i] >= 0.2) cnt[i][2]++;
      else cnt[i][3]++;
    }
  }

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

  return 0;
}

C++: #include <iostream>
using namespace std;
int main()
{
	int a = 0, b = 0, c = 0, d = 0, A = 0, B = 0, C = 0, D = 0;
	float tmp;
	while (cin >> tmp)
	{
		if (tmp >= 1.1)
			a++;
		else if (0.6 <= tmp < 1.1)
			b++;
		else if (0.2 <= tmp < 0.6)
			c++;
		else
			d++;
		cin >> tmp;
		if (tmp >= 1.1)
			A++;
		else if (0.6 <= tmp < 1.1)
			B++;
		else if (0.2 <= tmp < 0.6)
			C++;
		else
			D++;
	}

	cout << a << " " << A << endl << b << " " << B << endl << c << " " << C << endl << d << " " << D << endl;

}

C++: /* 
 * File:   main.cpp
 * Author: freebsd
 *
 * Created on 2014/08/28, 10:07
 */

#include <cstdio>

using namespace std;

int main() {
    int Al = 0, Bl = 0, Cl = 0, Dl = 0;
    int Ar = 0, Br = 0, Cr = 0, Dr = 0;
    double templ = 0.0, tempr = 0.0;
    
    int i = 0;
    
    while (i != 40) {
        scanf("%lf %lf", &templ, &tempr);
    
        if(templ >= 1.1) {
            Al++;
        }else if (templ >= 0.6 && templ < 1.1) {
            Bl++;
        }else if (templ >= 0.2 && templ < 0.6) {
            Cl++;
        }else {
            Dl++;
        }
    
        if(tempr >= 1.1) {
            Ar++;
        }else if (tempr >= 0.6 && tempr < 1.1) {
            Br++;
        }else if (tempr >= 0.2 && tempr < 0.6) {
            Cr++;
        }else {
            Dr++;
        }
        
        i++; 
    }
    
    printf("%d %d\n", Al, Ar);
    printf("%d %d\n", Bl, Br);
    printf("%d %d\n", Cl, Cr);
    printf("%d %d\n", Dl, Dr);
    
    return 0;
}

C++: #include <stdio.h>

 int main(void)
 {
 int a[2][4] = {0}, i;
 double r, l;

 while(scanf("%lf %lf", &l, &r) == 2){
 ++ a[0][(l < 1.1) + (l < 0.6) + (l < 0.2)];
 ++ a[1][(r < 1.1) + (r < 0.6) + (r < 0.2)];
 }
 for(i = 0; i < 4; ++ i) printf("%d %d\n", a[0][i], a[1][i]);
 return 0;
}

C++: #include "bits/stdc++.h"
#include<unordered_map>
#include<unordered_set>
#pragma warning(disable:4996)
using namespace std;
using ld = long double;
template<class T>
using Table = vector<vector<T>>;
const ld eps=1e-9;

//// < "D:\D_Download\Visual Studio 2015\Projects\programing_contest_c++\Debug\a.txt" > "D:\D_Download\Visual Studio 2015\Projects\programing_contest_c++\Debug\b.answer"
string to_string_keta(const long long int l, const int keta) {
	ostringstream oss;

	oss << std::setw(keta) << std::setfill('0') << l;

	return oss.str();
}
int getnum(const int a) {
	if (a >= 11)return 0;
	else if (a >= 6)return 1;
	else if (a >= 2)return 2;
	else return 3;
}

int main() {
	ld a, b;
	vector<int>lnum(4);
	vector<int>rnum(4);
	while (cin >> a>>b) {
		a += eps; b += eps;
		a *= 10; b *= 10;
		lnum[getnum(a)]++;

			rnum[getnum(b)]++;
		
	}
	for (int i = 0; i < 4; ++i) {
		cout << lnum[i] << " "<<rnum[i] << endl;
	}
	return 0;
}

C++: #include<stdio.h>
int main(){
  double l,r;
  int a[4][2]={};
  while(scanf("%lf %lf",&l,&r) != EOF){
    if(l >= 1.1) a[0][0]++;
    else if(l >= 0.6) a[1][0]++;
    else if(l >= 0.2) a[2][0]++;
    else a[3][0]++;
    if(r >= 1.1) a[0][1]++;
    else if(r >= 0.6) a[1][1]++;
    else if(r >= 0.2) a[2][1]++;
    else a[3][1]++;
  }
  for(int i=0;i<4;i++){
    printf("%d %d\n",a[i][0],a[i][1]);
  }
  return (0);
}

C++: #define _USE_MATH_DEFINES
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
#include <cfloat>
#include <ctime>
#include <cassert>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <numeric>
#include <list>
#include <iomanip>
#include <iterator>
 
using namespace std;
 
typedef long long ll;
typedef pair<int,int> Pii;
typedef pair<ll,ll> Pll;
 
#define FOR(i,n) for(int i = 0; i < (n); i++)
#define sz(c) ((int)c.size())

typedef unsigned long long ull;
const int INF = (int)1e8;


int main(){
	double f[] = {0.2,0.6,1.1};
	double a,b;
	vector<int> v1(4),v2(4);
	while(cin>>a>>b){
		v1[upper_bound(f,f+3,a) - f]++;
		v2[upper_bound(f,f+3,b) - f]++;
	}
	FOR(i,4){
		printf("%d %d\n",v1[3-i],v2[3-i]);
	}

	return 0;
}

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

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