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>
#include<fstream>
#include<sstream>
#include<cstdio>
#include<vector>
#include<list>
#include<stack>
#include<queue>
#include<deque>
#include<map>
#include<set>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<cstdlib>
#include<climits>
#include<utility>
#include<cctype>
using namespace std;

#define ull unsigned long long
#define ll long long
#define rep(i,j) for(int i=0;i<j;++i)
#define loop(i,a,j) for(int i=a;i<j;++i)
#define mpi(it,table,T,E) for(map<T,E>::iterator it = table.begin();it!=table.end();++it)
#define PI 3.141592654
/*
ifstream fin("input.txt");
ofstream fout("output.txt");
#define cin fin
#define cout fout
*/


int main(){
	int eye[4][2];
	memset(eye,0,sizeof(eye));
	double h,m;
	while(scanf("%lf %lf",&h,&m) != EOF){
		if( h >= 1.1 ){
			eye[0][0]++;
		}else if( 0.6 <= h && h < 1.1){
			eye[1][0]++;
		}else if( 0.2 <= h && h < 0.6){
			eye[2][0]++;
		}else{
			eye[3][0]++;
		}

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

	}
	
	rep(i,4){
		printf("%d %d\n",eye[i][0],eye[i][1]);
	}
	
	return 0;
}

C++: #include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main(void){

	double l,r;
	int la=0,lb=0,lc=0,ld=0,ra=0,rb=0,rc=0,rd=0;
	while(cin>>l>>r){
        if(l>=1.1)la++;
        else if(l>=0.6)lb++;
        else if(l>=0.2)lc++;
        else ld++;

        if(r>=1.1)ra++;
        else if(r>=0.6)rb++;
        else if(r>=0.2)rc++;
        else rd++;


	}
	cout<<la<<" "<<ra<<endl;
	cout<<lb<<" "<<rb<<endl;
	cout<<lc<<" "<<rc<<endl;
	cout<<ld<<" "<<rd<<endl;


	return 0;
}

C++: #include<iostream>
#include<string>
#include<vector>
#include<cstdio>
#include<sstream>
#include<cmath>
#include<algorithm>
#include<map>
#include<functional>
#include<queue>
#include<stack>
#include<set>
using namespace std;
int stoi(string x){stringstream ss;ss<<x;int tmp;ss>>tmp;return tmp;}
string itos(int x){stringstream ss;ss<<x;return ss.str();}
int main(){
	int ta[4][2]={{0},{0}};
	double a,b;
	while(cin>>a>>b){
		if(a>=1.1)ta[0][0]++;
		else if(a>=0.6)ta[1][0]++;
		else if(a>=0.2)ta[2][0]++;
		else ta[3][0]++;
		if(b>=1.1)ta[0][0]++;
		else if(b>=0.6)ta[1][1]++;
		else if(b>=0.2)ta[2][1]++;
		else ta[3][1]++;
	}
		for(int i=0;i<4;i++)cout<<ta[i][0]<<" "<<ta[i][1]<<endl;
		return 0;
}

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

#define REP(i,k,n) for(int i=k;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)

using namespace std;

int main()
{
	double a,b;
	vector<int> ans(4);
	vector<int> ans_2(4);
	
	while(cin >> a >> b)
	{
		if(a >= 1.1) ans[0]++;
		else if(a >= 0.6) ans[1]++;
		else if(a >= 0.2) ans[2]++;
		else ans[3]++;

		if(b >= 1.1) ans_2[0]++;
		else if(b >= 0.6) ans_2[1]++;
		else if(b >= 0.2) ans_2[2]++;
		else ans_2[3]++;
	}

	rep(i,4)
	{
		cout << ans[i] << " " << ans_2[i] << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <complex>
#include <string>
#include <vector>
#include <list>
#include <deque>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <bitset>
#include <functional>
#include <utility>
#include <algorithm>
#include <numeric>
#include <typeinfo>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
#include <ctime>

using namespace std;

#define dump(n) cout<<"# "<<#n<<"="<<(n)<<endl
#define debug(n) cout<<__FILE__<<","<<__LINE__<<": #"<<#n<<"="<<(n)<<endl
#define repi(i,a,b) for(int i=int(a);i<int(b);i++)
#define rep(i,n) repi(i,0,n)
#define iter(c) __typeof((c).begin())
#define foreach(i,c) for(iter(c) i=(c).begin();i!=(c).end();i++)
#define allof(c) (c).begin(),(c).end()
#define mp make_pair

typedef unsigned int uint;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<string> vs;
typedef pair<int,int> pii;

const double EPS=1e-10;

int main()
{
	int res[4][2]={};
	for(double a[2];cin>>a[0]>>a[1];){
		rep(i,2)
			if(a[i]+EPS>1.1)
				res[0][i]++;
			else if(a[i]+EPS>0.6)
				res[1][i]++;
			else if(a[i]+EPS>0.2)
				res[2][i]++;
			else
				res[3][i]++;
	}
	rep(i,4)
		cout<<res[i][0]<<" "<<res[i][1]<<endl;
	
	return 0;
}

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

using namespace std;

#define EPS (1e-10)
#define EQ(a,b) (abs(a-b)<EPS)

int main(){

	double l,r;

	int le[200];
	int re[200];
	memset(le,0,sizeof(le));
	memset(re,0,sizeof(re));

	while(cin>>l>>r){
		if(l>=1.1){
			le['A']++;
		}
		else if((l>0.6||EQ(l,0.6))&&l<1.1){
			le['B']++;
		}
		else if((l>0.2||EQ(l,0.2))&&l<0.6){
			le['C']++;
		}
		else if(l<0.2)
			le['D']++;

		if(EQ(r,1.1)||r>1.1){
			re['A']++;
		}
		else if((r>0.6||EQ(r,0.6))&&r<1.1){
			re['B']++;
		}
		else if((r>0.2||EQ(r,0.2))&&r<0.6){
			re['C']++;
		}
		else if(r<0.2)
			re['D']++;
	}
	for(char i = 'A'; i != 'E'; i++){
		cout<<le[i]<<" "<<re[i]<<endl;
	}

	return 0;
}

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

int A[21] = {} , B[21] = {};
int main(){
	double a,b;
	while(cin >> a >> b){
		a *= 10;
		b *= 10;
		A[(int)(a+1e-9)]++;
		B[(int)(b+1e-9)]++;
	}
	int x,y;
	x=0; for(int i = 11 ; i < 21 ; i++) x += A[i];
	y=0; for(int i = 11 ; i < 21 ; i++) y += B[i];
	cout << x << " " << y << endl;
	x=0; for(int i = 6 ; i < 11 ; i++) x += A[i];
	y=0; for(int i = 6 ; i < 11 ; i++) y += B[i];
	cout << x << " " << y << endl;
	x=0; for(int i = 2 ; i < 6 ; i++) x += A[i];
	y=0; for(int i = 2 ; i < 6 ; i++) y += B[i];
	cout << x << " " << y << endl;
	x=0; for(int i = 0 ; i < 2 ; i++) x += A[i];
	y=0; for(int i = 0 ; i < 2 ; i++) y += B[i];
	cout << x << " " << y << endl;
}

C++: #include<stdio.h>
int main(void)
{
	double h,m;
	int cMA,cHA;
	int cMB,cHB;
	int cMC,cHC;
	int cMD,cHD;
	cMA=0;
	cHA=0;
	cMB=0;
	cHB=0;
	cMC=0;
	cHC=0;
	cMD=0;
	cHD=0;
		while(scanf("%lf %lf",&h,&m)!=EOF){
			if(h>=1.1){
				cHA++;
			}
			else if(0.6<=h && h<1.1){
				cHB++;
			}
			else if(0.2<=h && h<0.6){
				cHC++;
			}
			else{
				cHD++;
			}
			if(m>=1.1){
				cMA++;
			}
			else if(0.6<=m && m<1.1){
				cMB++;
			}
			else if(0.2<=m && m<0.6){
				cMC++;
			}
			else if(0.2>m){
				cMD++;
			}
		}
	printf("%d %d\n%d %d\n%d %d\n%d %d\n",cHA,cMA,cHB,cMB,cHC,cMC,cHD,cMD);
	return 0;
}