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;

int main()
{
  vector<double> left_eye;
  vector<double> right_eye;

  int result1[40] = {0};
  int result2[40] = {0};

  double a,b;

  while(cin>>a && cin>>b){
    double a,b;
    cin>>a;
    cin>>b;
    left_eye.push_back(a);
    right_eye.push_back(b);
  }

  for(double e : left_eye){
    if(e >= 1.1){
      result1[0] += 1;
    }
    else if(e >= 0.6 && e < 1.1){
      result1[1] += 1;
    }
    if(e >= 0.2 && e < 0.6){
      result1[2] += 1;
    }
    if(e < 0.2){
      result1[3] += 1;
    }
  }

  for(double e : right_eye){
    if(e >= 1.1){
      result2[0] += 1;
    }
    else if(e >= 0.6 && e < 1.1){
      result2[1] += 1;
    }
    if(e >= 0.2 && e < 0.6){
      result2[2] += 1;
    }
    if(e < 0.2){
      result2[3] += 1;
    }
  }

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

  return 0;
}

C++: #include<stdio.h>
int main()
{
	double l,r;
	int al=0,bl=0,cl=0,dl=0,ar=0,br=0,cr=0,dr=0;
	while(scanf("%lf%lf",&l,&r)!=EOF){
		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++;
		}
	}
	printf("%d %d\n%d %d\n%d %d\n%d %d\n",al,ar,bl,br,cl,cr,dl,dr);
	return 0;
}

C++: #include <iostream>

int main() {
  float l, r;

  int a_l = 0;
  int a_r = 0;
  int b_l = 0;
  int b_r = 0;
  int c_l = 0;
  int c_r = 0;
  int d_l = 0;
  int d_r = 0;

  while (std::cin >> l >> r) {
    if (1.1 <= l) {
      ++a_l;
    } else if (0.6 <= l) {
      ++b_l;
    } else if (0.2 <= l) {
      ++c_l;
    } else {
      ++d_l;
    }

    if (1.1 <= r) {
      ++a_r;
    } else if (0.6 <= r) {
      ++b_r;
    } else if (0.2 <= r) {
      ++c_r;
    } else {
      ++d_r;
    }
  }

  std::cout << a_l << " " << a_r << std::endl;
  std::cout << b_l << " " << b_r << std::endl;
  std::cout << c_l << " " << c_r << std::endl;
  std::cout << d_l << " " << d_r << std::endl;
  return 0;
}

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

const double EPS = 1e-10;

int n;
int ls[4], rs[4];

int main()
{
    double l,r;
    for(int i = 0; i < 4; i++) 
        ls[i] = rs[i] = 0;

    n = 0;
    while(cin >> l >> r) {
        if(l - EPS > 1.1) ls[0]++;
        else if(l - EPS > 0.6 && l < 1.1) ls[1]++;
        else if(l - EPS > 0.2 && l < 0.6) ls[2]++;
        else ls[3]++;

        if(r - EPS > 1.1) rs[0]++;
        else if(r - EPS > 0.6 && r < 1.1) rs[1]++;
        else if(r - EPS > 0.2 && r < 0.6) rs[2]++;
        else rs[3]++;
        n++;
    }
    
    for(int i = 0; i < n; i++) 
        cout << ls[i] << " " << rs[i] << endl;

}

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

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

typedef long long int ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<pair<int, int> > vii;
#define rrep(i, m, n) for(int (i)=(m); (i)<(n);  (i)++)
#define erep(i, m, n) for(int (i)=(m); (i)<=(n); (i)++)
#define  rep(i, n)    for(int (i)=0; (i)<(n);  (i)++)
#define rrev(i, m, n) for(int (i)=(n)-1; (i)>=(m); (i)--)
#define erev(i, m, n) for(int (i)=(n); (i)>=(m); (i)--)
#define  rev(i, n)    for(int (i)=(n)-1; (i)>=0; (i)--)
#define vrep(i, c)    for(__typeof((c).begin())i=(c).begin(); i!=(c).end(); i++)
#define  ALL(v)       (v).begin(), (v).end()
#define mp            make_pair
#define pb            push_back
template<class T, class S> inline bool minup(T& m, S x){ return m>(T)x ? (m=(T)x, true) : false; }
template<class T, class S> inline bool maxup(T& m, S x){ return m<(T)x ? (m=(T)x, true) : false; }

const int    INF = 1000000000;
const ll     MOD = 1000000007LL;
const double EPS = 1E-12;

double e[2];
double res[2][4];

int main()
{
  while(cin >> e[0] >> e[1]){
    rep(i, 2){
      if(e[i] >= 1.1) res[0][i] += 1;
      else if(e[i] >= 0.6 && e[i] < 1.1) res[1][i] += 1;
      else if(e[i] >= 0.2 && e[i] < 0.6) res[2][i] += 1;
      else res[3][i] += 1;
    }
  }

  rep(i, 4) cout << res[i][0] << ' ' << res[i][1] << endl;

  return 0;
}

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

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

        if(r >= 1.1) ra++;
        else if(r >= 0.6 && r < 1.1) rb++;
        else if(r >= 0.2 && r < 0.6) rc++;
        else rd++;
    }
    cout << la << " " << ra << endl;
    cout << lb << " " << rb << endl;
    cout << lc << " " << rc << endl;
    cout << ld << " " << rd << endl;
}

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

int main() {
  double left,right;
  int L[4]={},R[4]={};
  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>

int cnt[2][4];
const double b[] = { 1.1, 0.6, 0.2 };

int main()
{
	double e[2];
	while( std::cin >> e[0] >> e[1] )
	{
		for( int i = 0; i != 2; ++i )
		{
			int cls;
			for( cls = 0; cls != 4; ++cls )
			{
				if( !cls && e[i] >= b[0] )
					break;
				else if( cls == 3 && e[i] < b[2] )
					break;
				else if( e[i] >= b[cls] && e[i] < b[cls-1] )
					break;
			}

			++cnt[i][cls];
		}
	}

	for( int i = 0; i != 4; ++i )
	{
		for( int j = 0; j != 2; ++j )
			std::cout << cnt[j][i] << ( j ? "" : " " );

		std::cout << std::endl;
	}

	return 0;
}

C++: #include<iostream>

int cnt[2][4];
const double b[] = { 1.1, 0.6, 0.2 };

int main()
{
	double e[2];
	while( std::cin >> e[0] >> e[1] )
	{
		for( int i = 0; i != 2; ++i )
		{
			int cls;
			for( cls = 0; cls != 4; ++cls )
			{
				if( !cls && e[i] >= b[0] )
					break;
				else if( cls == 3 && e[i] < b[3] )
					break;
				else if( e[i] >= b[cls] && e[i] < b[cls-1] )
					break;
			}

			++cnt[i][cls];
		}
	}

	for( int i = 0; i != 4; ++i )
	{
		for( int j = 0; j != 2; ++j )
			std::cout << cnt[j][i] << ( j ? "" : " " );

		std::cout << std::endl;
	}

	return 0;
}

C++: #include<iostream>

using namespace std;

int main(){

	double r,l;
	int va[2][4]={0};

	while(cin>>l>>r){
		if(r>=1.1) va[0][0]++;
		else if(r>=0.6) va[0][1]++;
		else if(r>=0.2) va[0][2]++;
		else va[0][3]++;
		if(l>=1.1) va[1][0]++;
		else if(l>=0.6) va[1][1]++;
		else if(l>=0.2) va[1][2]++;
		else va[1][3]++;
	}
	for(int i=0;i<4;i++){
		cout<<va[1][i]<<" "<<va[0][i]<<endl;
	}
}