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 <string>
#include <algorithm>
#include <functional>
#include <vector>
#include <utility>
#include <cstring>
#include <iomanip>
#include <numeric>
#include <cmath>
#include <cassert>
using namespace std;
using ll = long long;
const int INF = 1<<30;
const int MOD = (int)1e9 + 7;
const int MAX_N = (int)1e5 + 5;
#define debug(x) cout << #x << ": " << x << endl
template<typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2>& p) { os << p.first << " " << p.second; return os; }
template<typename T>
ostream &operator<<(ostream &os, const vector<T> &v) { for(int i = 0; i < (int) v.size(); i++) os << v[i] << (i + 1 != v.size() ? " " : ""); return os; }
signed main(void)
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    double l, r;
    int s[4] = {}, t[4] = {};
    while(cin >> l >> r)
    {
        if(l >= 1.1) s[0]++;
        else if(l >= 0.6) s[1]++;
        else if(l >= 0.2) s[2]++;
        else s[3]++;
        if(r >= 1.1) t[0]++;
        else if(r >= 0.6) t[1]++;
        else if(r >= 0.2) t[2]++;
        else t[3]++;
    }
    for(int i = 0; i < 4; i++)
    {
        cout << s[i] << " " << t[i] << endl;
    }
    return 0;
}

C++: #include <iostream>

using namespace std;

int main(void){

  int la = 0,ra = 0;
  int lb = 0,rb = 0;
  int lc = 0,rc = 0;
  int ld = 0,rd = 0;

  double l,r;

  while( cin >> l >> r ){

    if( l < 0.2 ) ld++;
    else if( 0.2 <= l && l < 0.6 ) lc++;
    else if( 0.6 <= l && l < 1.1 ) lb++;
    else la++;

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

  }

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

  return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  double L,R;
  int numL[4]={0},numR[4]={0};
  int cnt=0;
  while(cin>> L>> R){
    cnt++;
    if(L<0.2) numL[3]++;
    else if(L<0.6) numL[2]++;
    else if(L<1.1) numL[1]++;
    else numL[0]++;

    if(R<0.2) numR[3]++;
    else if(R<0.6) numR[2]++;
    else if(R<1.1) numR[1]++;
    else numR[0]++;
  }

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

C++: #include <cstdio>

int si[2][4] = {0};

int main(){
	double d[2];
	while(scanf("%lf%lf",&d[0],&d[1]) != EOF){
		for(int i = 0; i < 2; i++){
			d[i] *= 10;
			if(d[i] >= 11){
				si[i][0]++;
			}
			else if(d[i] >= 6){
				si[i][1]++;
			}
			else if(d[i] >= 2){
				si[i][2]++;
			}
			else{
				si[i][3]++;
			}
		}
	}
	for(int i = 0; i < 4; i++){
		printf("%d %d\n",si[0][i],si[1][i]);
	}
	return 0;
}

C++: #include<iostream>
#include<string>
#include<algorithm>	
#include<cmath>
#include<map>
#include<vector>
#define int long long
using namespace std;
int test[51];
signed main() {
    double n, m; int a = 0, b = 0, c = 0;
    int d = 0, e = 0, f = 0, g = 0, h = 0;
    while (cin >> n >> m) {
        if (n >= 1.1) { a++; }
        else if (n >= 0.6) { b++; }
        else if (n >= 0.2) { c++; }
        else { d++; }
        if (m >= 1.1) { e++; }
        else if (m >= 0.6) { f++; }
        else if (m >= 0.2) { g++; }
        else { h++; }
    }
    cout << a << ' ' << e << endl;
    cout << b << ' ' << f << endl;
    cout << c << ' ' << g << endl;
    cout << d << ' ' << h << endl;
}

C++: #include <iostream>
#include <string>
using namespace std;
int a[4], b[4];
int main()
{
    string L, R;
    while (cin >> L >> R) {
        int l = (L[0]-'0')*10 + L[2]-'0';
        int r = (R[0]-'0')*10 + R[2]-'0';
        if (l >= 11) a[0]++;
        else if (l >= 6) a[1]++;
        else if (l >= 2) a[2]++;
        else a[3]++;
        if (r >= 11) b[0]++;
        else if (r >= 6) b[1]++;
        else if (r >= 2) b[2]++;
        else b[3]++;
    }
    for (int i=0; i<4; ++i) cout << a[i] << " " << b[i] << endl;
    return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <algorithm>
#include <numeric>
#include <cstring>
#include <cmath>

using namespace std;

int main(int argc, char *argv[]) {
  double l, r;
  int left[4] = {0};
  int right[4] = {0};
  while (cin >> l >> r) {
    if (l >= 1.1)
      left[0]++;
    else if (l >= 0.6)
      left[1]++;
    else if (l >= 0.2)
      left[2]++;
    else
      left[3]++;

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

  for (int i = 0; i < 4; i++)
    cout << left[i] << ' ' << right[i] << endl;
  return 0;
}

C++: #define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <array>
#include <queue>
#include <deque>
#include <set>
#include <list>
#include <map>
#include <stack>
#include <utility>
#include <bitset>
#include <complex>
#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <climits>
#include <random>
#include <functional>
#include <sstream>
#include <iomanip>

using namespace std;

#define rep(i, n) for(int i=0; i<(n); i++)
#define FOR(i, m, n) for(int i=(m);i<(n);i++)
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
#define SORT(x) sort((x).begin(),(x).end())
#define REVE(x) reverse((x).begin(),(x).end())
#define mp make_pair
#define pb push_back
#define Cout(x) cout << (x) << endl
#define dump(x) cout << #x << " = " << (x) << endl;
#define forauto(i, a) for(auto i : a)cout << i << " "; puts("");

typedef long long LL;
typedef vector<int> VI;
typedef vector<LL> VL;
typedef vector<string> VS;
typedef vector<bool> VB;
typedef vector<vector<int>> VVI;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef complex<double> CD;

int eye(double n) {
	int ret;

	if (n >= 1.1)ret = 0;
	else if (n >= 0.6)ret = 1;
	else if (n >= 0.2)ret = 2;
	else ret = 3;

	return ret;
}

int main() {
	double a, b;
	VI l(4), r(4);
	while (cin >> a >> b) {
		//if (a == 0.)break;
		l[eye(a)]++;
		r[eye(b)]++;
	}
	rep(i, 4) {
		cout << l[i] << " " << r[i] << endl;
	}
}

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

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