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<math.h>
#include<vector>
#include<algorithm>
#include<cstdio>
#include <string>
using namespace std;
 
int main(){
   int al=0,bl=0,cl=0,dl=0;
   int ar=0,br=0,cr=0,dr=0;
   double l,r;
   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 <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <algorithm>
#include <math.h>
#include <map>
#include <functional>
#include <iomanip>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <typeinfo>
#define PI 3.14159265359
#define INF 99999999
#define rep(i, n) for(int i=0; i<n; i++)
#define REP(n) rep(i, n)
#define pb push_back
#define mp make_pair
typedef long long ll;
using namespace std;
typedef pair<int, int> P;

double l, r;
map<char, int> lleft;
map<char, int> rright;

int main()
{
	while (cin >> l >> r)
	{
		if (l >= 1.1) lleft['A']++;
		else if (l >= 0.6) lleft['B']++;
		else if (l >= 0.2) lleft['C']++;
		else lleft['D']++;

		if (r >= 1.1) rright['A']++;
		else if (r >= 0.6) rright['B']++;
		else if (r >= 0.2) rright['C']++;
		else rright['D']++;
	}

	printf("%d %d\n", lleft['A'], rright['A']);
	printf("%d %d\n", lleft['B'], rright['B']);
	printf("%d %d\n", lleft['C'], rright['C']);
	printf("%d %d\n", lleft['D'], rright['D']);

	return 0;
}

C++: #include<iostream>
using namespace std;
int main(void){
    int l[4],r[4];
    double left,right;
    for(int i=0;i<4;i++){
        l[i] = 0;
        r[i] = 0;
    }
    while(cin >> left >> right){
        if(left>=1.1)       l[0]++;
        else if(left>=0.6)  l[1]++;
        else if(left>=0.2)  l[2]++;
        else                l[3]++;
        if(right>=1.1)      r[0]++;
        else if(right>=0.6) r[1]++;
        else if(right>=0.2) r[2]++;
        else                r[3]++;
    }
    for(int i=0;i<4;i++)    cout << l[i] << " " << r[i] << endl;
}

C++: #include<iostream>
using namespace std;
int main(){
	double r,l;
	int eyesight[4][2];
	for(int i=0; i<4; i++){
		eyesight[i][0]=0;
		eyesight[i][1]=0;
	}
	
	while(cin >> r >> l){
		if(r >= 1.1)
			eyesight[0][0]++;
		if(l >= 1.1)
			eyesight[0][1]++;
		if(r >= 0.6 && r < 1.1)
			eyesight[1][0]++;
		if(l >= 0.6 && l < 1.1)
			eyesight[1][1]++;
		if(r >= 0.2 && r < 0.6)
			eyesight[2][0]++;
		if(l >= 0.2 && l < 0.6)
			eyesight[2][1]++;
		if(r < 0.2)
			eyesight[3][0]++;
		if(l < 0.2)
			eyesight[3][1]++;
	}
	
	for(int i=0; i<4; i++){
		cout << eyesight[i][0] << " " << eyesight[i][1] << endl;
	}
	return 0;
}

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

int main() {
    int Al, Ar, Bl, Br, Cl, Cr, Dl, Dr;
    Al = Ar = Bl = Br = Cl = Cr = Dl = Dr = 0;
    double l, r;
    while (cin >> l >> r) {
        if (1.1 <= l) Al ++;
        else if (0.6 <= l) Bl ++;
        else if (0.2 <= l) Cl ++;
        else Dl ++;

        if (1.1 <= r) Ar ++;
        else if (0.6 <= r) Br ++;
        else if (0.2 <= r) Cr ++;
        else Dr ++;
    }
    cout << Al << " " << Ar << endl;
    cout << Bl << " " << Br << endl;
    cout << Cl << " " << Cr << endl;
    cout << Dl << " " << Dr << endl;
    return 0;
}

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

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<utility>
#include<vector>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<time.h>
#define loop(i,a,b) for(int i=a;i<b;i++) 
#define rep(i,a) loop(i,0,a)
#define pb push_back
#define mp make_pair
#define all(in) in.begin(),in.end()
const double PI=acos(-1);
const double EPS=1e-10;
using namespace std;
typedef long long ll;
typedef vector<int> vi;
int main(){
	double h[4]={0.2,0.6,1.1,30};
	vector<int>r(4);
	vector<int>l(4);
	double a,b;
	while(cin>>a>>b){
		rep(i,4)if(a<h[i]){l[i]++;break;}
		rep(i,4)if(b<h[i]){r[i]++;break;}
	}
	rep(i,4)cout<<l[3-i]<<" "<<r[3-i]<<endl;
}

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

using namespace std;

typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef vector<vb> vbb;
typedef pair<int, int> pii;
typedef long long ll;
typedef unsigned long long ull;

#define all(a)  (a).begin(),(a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define pb push_back
#define mp make_pair

#define loop(i,a,b) for(int i=(a);i<ull(b);++i)
#define rep(i,n) loop(i,0,n)

const double eps = 1e-10;
const double pi  = acos(-1.0);
const double inf = (int)1e8;

int main(){
    double n, m;
    vector<pair<int, int> > v(4);
    while(cin >> n >> m){
        if(1.1 <= n) v[0].first++;
        else if(0.6 <= n && n < 1.1) v[1].first++;
        else if(0.2 <= n && n < 0.6) v[2].first++;
        else  v[3].first++;
        if(1.1 <= m) v[0].second++;
        else if(0.6 <= m && m < 1.1) v[1].second++;
        else if(0.2 <= m && m < 0.6) v[2].second++;
        else  v[3].second++;
    }

    rep(i, 4){
        cout << v[i].first << " " << v[i].second << endl;
    }
}

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

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

using namespace std;

using ll = long long;

int cntl[4], cntr[4];
int main(){
    double l, r;
    
    while(cin>>l>>r){
        if(l>=1.09)cntl[0]++;
        else if(l>=0.59)cntl[1]++;
        else if(l>=0.19)cntl[2]++;
        else cntl[3]++;

        if(r>=1.09)cntr[0]++;
        else if(r>=0.59)cntr[1]++;
        else if(r>=0.19)cntr[2]++;
        else cntr[3]++;
    }
    rep(i,4){
        cout<<cntl[i]<<" "<<cntr[i]<<endl;
    }
}