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()
{
	int LA, LB, LC, LD, RA, RB, RC, RD;
	LA = LB = LC = LD = RA = RB = RC = RD = 0;
	while (1) 
	{
		double a, b;
		cin >> a >> b;
		if (cin.fail())break;
		if (a <0.2)LD++;
		else if (a < 0.6)LC++;
		else if (a < 1.1)LB++;
		else LA++;
		if (b <0.2)RD++;
		else if (b < 0.6)RC++;
		else if (b < 1.1)RB++;
		else RA++;
	}
	cout << LA << " " << RA << endl << LB << " " << RB << endl << LC << " " << RC << endl << LD << " " << RD << endl;
}

C++: #include "bits/stdc++.h"
using namespace std;

int main(){
	vector<int> l(4,0);
	vector<int> r(4,0);
	
	double a,b;
	while(cin>>a>>b){
		if(a>=1.1){
			l[0]++;
		}else if(a>=0.6){
			l[1]++;
		}else if(a>=0.2){
			l[2]++;
		}else{
			l[3]++;
		}
		
		if(b>=1.1){
			r[0]++;
		}else if(b>=0.6){
			r[1]++;
		}else if(b>=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>
using namespace std;
int seach(double in){
	if(in<=1.1)return 0;
	else if(0.6<=in)return 1;
	else if(0.2<=in)return 2;
	return 3;
}

int main() {
	int r[4]={0},l[4]={0};
	int c=0;
	double rin,lin;
	while(cin>>rin>>lin){
		c++;
		r[seach(rin)]++;
		l[seach(lin)]++;
	}
	for(int i=0;i<4;i++){
		cout<<r[i]<<" "<<l[i]<<endl;
	}
	
	return 0;
}

C++: // 2011/01/17 Tazoe

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
	int cnt[4][2];
	for(int i=0; i<4; i++)
		for(int j=0; j<2; j++)
			cnt[i][j] = 0;

	while(!cin.eof()){
		string str;
		getline(cin, str);
		if(str.empty())
			continue;

		istringstream ist(str);
		double eye[2];
		ist >> eye[0] >> eye[1];

		for(int j=0; j<2; j++)
			if(eye[j]>=1.1)
				cnt[0][j]++;
			else if(eye[j]>=0.6)
				cnt[1][j]++;
			else if(eye[j]>=0.2)
				cnt[2][j]++;
			else
				cnt[3][j]++;
	}

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

	return 0;
}

C++: #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cassert>
#include <iostream>
#include <cctype>
#include <sstream>
#include <string>
#include <list>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <iterator>
#include <bitset>
#include <complex>
#include <fstream>
using namespace std;
typedef long long ll;
const double EPS = 1e-9;
typedef vector<int> vint;
typedef pair<int, int> pint;
#define rep(i, n) REP(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define MSG(a) cout << #a << " " << a << endl;
#define REP(i, x, n) for(int i = x; i < n; i++)
template<class T> T RoundOff(T a){ return int(a+.5-(a<0)); }
template<class T, class C> void chmax(T& a, C b){ if(a < b) a = b; }
template<class T, class C> void chmin(T& a, C b){ if(b < a) a = b; }
template<class T, class C> pair<T, C> mp(T a, C b){ return make_pair(a, b); }

int cnv(double x)
{
	return 1.1 <= x ? 0: 0.6 <= x ? 1 : 0.2 <= x ? 2 : 3;
}

int main()
{
	int x[2][4] = {0};
    for(double a, b; cin >> a >> b; x[0][cnv(a)]++) x[1][cnv(b)]++;
	rep(i, 4) cout << x[0][i] << " " << x[1][i] << endl;
}

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

int abl_l[4] = {0, 0, 0, 0};
int abl_r[4] = {0, 0, 0, 0};

int ability(double f) {
	if (f >= 1.1) return 0;
	if (f >= 0.6) return 1;
	if (f >= 0.2) return 2;
	return 3;
}

int main() {
	double l, r;
	while (cin >> l >> r) {
		abl_l[ability(l)]++;
		abl_r[ability(r)]++;
	}
	for (int i = 0; i < 4; i++)
		cout << abl_l[i] << " " << abl_r[i] << endl;
	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;

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

C++: #include <cstdio>
int main()
{
    float left,right;
    int lA=0,rA=0,lB=0,rB=0,lC=0,rC=0,lD=0,rD=0;
    while (scanf("%f %f",&left,&right)!=EOF) {
        if (left<0.2) lD++;
        else if (left<0.6) lC++;
        else if (left<1.1) lB++;
        else lA++;
        if (right<0.2) rD++;
        else if (right<0.6) rC++;
        else if (right<1.1) rB++;
        else rA++;
    }
    printf("%d %d\n%d %d\n%d %d\n%d %d\n",lA,rA,lB,rB,lC,rC,lD,rD);
}

C++: #include<iostream>
using namespace std;
enum vision_rank{
	RANK_A = 0,
	RANK_B,
	RANK_C,
	RANK_D,
	MAX_RANK
};
int main()
{
	int l_num[MAX_RANK] = {0,};
	int r_num[MAX_RANK] = {0,};

	while(true)
	{
		double left, right;
		cin >> left >> right;
		if( cin.eof() ) break;

		if( left >= 1.1 ){
			++l_num[ RANK_A ];
		}else if( left >= 0.6 ){
			++l_num[ RANK_B ];
		}else if( left >= 0.2 ){
			++l_num[ RANK_C ];
		}else{
			++l_num[ RANK_D ];
		}

		if( right >= 1.1 ){
			++r_num[ RANK_A ];
		}else if( right >= 0.6 ){
			++r_num[ RANK_B ];
		}else if( right >= 0.2 ){
			++r_num[ RANK_C ];
		}else{
			++r_num[ RANK_D ];
		}
	}
	for(int i = RANK_A; i < MAX_RANK; ++i){
		cout << l_num[ i ] << ' ' << r_num[ i ] << '\n';
	}
	return 0;
}

C++: #include <iostream>
#include <stdio.h>
using namespace std;
int main(){
	int eye[2][4]={0};
	double l,r;

	while(scanf("%lf %lf",&l,&r) != EOF){
		if(l>=1.1)               eye[0][0]++;
		else if(l>=0.6 && l<1.1) eye[0][1]++;
		else if(l>=0.2 && l<0.6) eye[0][2]++;
		else if(l<0.2)           eye[0][3]++;

		if(r>=1.1)               eye[1][0]++;
		else if(r>=0.6 && r<1.1) eye[1][1]++;
		else if(r>=0.2 && r<0.6) eye[1][2]++;
		else if(r<0.2)           eye[1][3]++;
	}

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

C++: #include <iostream>
using namespace std;
int seach(double in){
	if(1.1<=in)return 0;
	else if(0.6<=in)return 1;
	else if(0.2<=in)return 2;
	return 3;
}

int main() {
	int r[4]={0},l[4]={0};
	int c=0;
	double rin,lin;
	while(cin>>rin>>lin){
		c++;
		r[seach(rin)]++;
		l[seach(lin)]++;
	//	cout<<seach(rin)<<" "<<seach(lin)<<endl;
	}
	//cout<<endl;
	for(int i=0;i<4;i++){
		cout<<r[i]<<" "<<l[i]<<endl;
	}
	
	return 0;
}

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

using namespace std;

int LeftEyeData[4], RightEyeData[4];
const double EXP = 1e-13;

void judge(const double n, int *EyeData) {

	if (n > 1.1 || fabs(n - 1.1) <= EXP) {
		EyeData[0]++;
	}
	else if (n > 0.6 || fabs(n - 0.6) <= EXP) {
		EyeData[1]++;
	}
	else if (n > 0.2 || fabs(n - 0.2) <= EXP) {
		EyeData[2]++;
	}
	else {
		EyeData[3]++;
	}
}

int main(void) {
	double l, r;

	while (cin >> l >> r) {
		judge(l, LeftEyeData);
		judge(r, RightEyeData);
	}

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

	return 0;
}