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 <bits/stdc++.h>
using namespace std ;

#define pb(n) push_back(n)
#define fi first
#define se second
#define all(r) (r).begin(),(r).end()
#define gsort(st,en) sort((st),(en),greater<int>())
#define vmax(ary) *max_element(all(ary))
#define vmin(ary) *min_element(all(ary))
#define debug(x) cout<<#x<<": "<<x<<endl
#define fcout(n) cout<<fixed<<setprecision((n))
#define scout(n) cout<<setw(n)
#define vary(type,name,size,init) vector< type> name(size,init)

#define rep(i,n) for(int i = 0; i < (int)(n);++i)
#define REP(i,a,b) for(int i = (a);i < (int)(b);++i)
#define repi(it,array) for(auto it = array.begin(),end = array.end(); it != end;++it)
#define repa(n,array) for(auto &n :(array))

using ll = long long;
using vi = vector<int>;
using vl = vector<ll>;
using dict = map<string,int>;
using pii = pair<int,int> ;

constexpr int imax = ((1<<30)-1)*2+1 ;
constexpr int inf = 100000000;
constexpr double PI = acos(-1.0) ;
double eps = 1e-10 ;
const int dy[] = {-1,0,1,0};
const int dx[] = {0,-1,0,1};

inline bool value(int x,int y,int w,int h){
  return (x >= 0 && x < w && y >= 0 && y < h);
}

template<typename T>
void Unique(vector<T> &v){
  sort(all(v));
  v.erase(unique(all(v)),v.end());
}

template<typename T>
T ston(string& str, T n){
  istringstream sin(str) ;
  T num ;
  sin >> num ;
  return num ;
}

void Ans(bool f){
  if(f) cout << "YES"<<endl;
  else cout << "NO"<<endl;
}

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  double l,r;
  vary(int,vl,4,0);
  vary(int,vr,4,0);
  while(cin >> l >> r){
    if( l >= 1.1) vl[0]++;
    else if(l >= 0.6) vl[1]++;
    else if(l >= 0.2) vl[2]++;
    else vl[3]++;

    if( r >= 1.1) vr[0]++;
    else if(r >= 0.6) vr[1]++;
    else if(r >= 0.2) vr[2]++;
    else vr[3]++;
  }
  rep(i,4){
    cout << vl[i] << " " << vr[i]<<endl;
  }
  return 0;
}

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

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

int main() {
	double l, r;
	int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0;
	while (cin >> l >> r) {
		if (l >= 1.1) { a++; }
		else if (l >= 0.6&&1.1 > l) { c++; }
		else if (l >= 0.2&&0.6 > l) { e++; }
		else if(0.2>l){ g++; }

		if (r >= 1.1) { b++; }
		else if (r >= 0.6&&1.1 > r) { d++; }
		else if (l >= 0.2&&0.6 > r) { f++; }
		else if(0.2>r) { h++; }
	}
	cout << a << " " << b <<'\n'<< c << " " << d << '\n' << e << " " << f <<'\n'
		<<g << " " << h ; 
		return 0;
}

C++: #include<stdio.h>

int main(){
int N1=0,N2=0,M1=0,M2=0;
int A[5]={},B[5]={};

while(scanf("%d.%d %d.%d",&N1,&N2,&M1,&M2)!=EOF)
{
if(N1>=2)A[0]++;
else if(N1==1&&N2>=1)A[0]++;
else if(N1==0&&N2>=6)A[1]++;
else if(N1==0&&N2>=2)A[2]++;
else if(N1==0&&N2<2)A[3]++;

if(M1>=2)B[0]++;
else if(M1==1&&M2>=1)B[0]++;
else if(M1==0&&M2>=6)B[1]++;
else if(M1==0&&M2>=2)B[2]++;
else if(M1==0&&M2<2)B[3]++;
}
for(int i=0;i<3;i++)
printf("%d %d\n",A[i],B[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>>b){
    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]++;
    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<iostream>

using namespace std;

#define A 0
#define B 1
#define C 2
#define D 3

int result[2][4];

int main()
{
  double buf[2];
  while(cin >> buf[0] >> buf[1])
  {
    for(int i = 0; i < 2; i++)
    {
      if(buf[i] >= 1.1)
        result[i][A]++;
      else if(buf[i] >= 0.6)
        result[i][B]++;
      else if(buf[i] >= 0.2)
        result[i][C]++;
      else
        result[i][D]++;
    }
  }

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

  return 0;
}

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

int main(){
  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<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<cnt;i++){
    cout<<sum[i][0]<<" "<<sum[i][1]<<endl;
  }
  return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
	double e,f;
	int ar=0,al=0,br=0,bl=0,cr=0,cl=0,dr=0,dl=0;
	while(cin>>e>>f){
		if(e>=1.1)
			ar++;
		if(e>=0.6&&e<1.1)
			br++;
		if(e>=0.2&&e<0.6)
			cr++;
		if(e<0.2)
			dr++;
		if(f>=1.1)
			al++;
		if(f>=0.6&&f<1.1)
			bl++;
		if(f>=0.2&&f<0.6)
			cl++;
		if(f<0.2)
			dl++;
	}
	cout<<ar<<" "<<al<<endl;
	cout<<br<<" "<<bl<<endl;
	cout<<cr<<" "<<cl<<endl;
	cout<<dr<<" "<<dl<<endl;
    return 0;
}

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

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