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++: 
#define _USE_MATH_DEFINES
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <limits>
#include <map>
#include <string>
#include <cstring>
#include <set>
#include <deque>

using namespace std;

typedef long long ll;
typedef pair<double,int> P;

static const double eps = 10e-9;

int main(){
	double a,b;
	double eyesight[] = {0.2,0.6,1.1};
	int lFreq[4]={0,0,0,0};
	int rFreq[4]={0,0,0,0};

	while(~scanf("%lf %lf",&a,&b)){
		int idx1 = 3;
		int idx2 = 3;
		for(int i=0;i<3;i++){
			if(a < eyesight[i]){
				idx1 = i;
				break;
			}
		}

		for(int i=0;i<3;i++){
			if(b < eyesight[i]){
				idx2 = i;
				break;
			}
		}

		lFreq[idx1]++;
		rFreq[idx2]++;
	}

	for(int i=3;i>=0;i--){
		printf("%d %d\n",lFreq[i],rFreq[i]);
	}
}

C++: #include<iostream>

using namespace std;

void CheckEyeTest(const double, int&, int&, int&, int&);

int main(){
  int leftA=0, leftB=0, leftC=0, leftD=0, rightA=0, rightB=0, rightC=0, rightD=0;
  double left, right;

  while(cin >> left >> right){
    CheckEyeTest(left, leftA, leftB, leftC, leftD);
    CheckEyeTest(right, rightA, rightB, rightC, rightD);
  }

  cout << leftA << " " << rightA << endl;
  cout << leftB << " " << rightB << endl;
  cout << leftC << " " << rightC << endl;
  cout << leftD << " " << rightD << endl;

  return 0;
}

void CheckEyeTest(const double x, int& a, int& b, int& c, int& d){
  if(x >= 1.1)
    ++a;
  else if(x >= 0.6)
    ++b;
  else if(x >= 0.2)
    ++c;
  else
    ++d;
}

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 < D; i++)
    cout << result[0][i] << " " << result[1][i] << endl;

  return 0;
}

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

int main()
{
  double eye[2];
  int data[4][2];
  memset(data,0,sizeof(data));
  for(;cin>>eye[0]>>eye[1];)
    {
      for(int i=0;i<2;i++)
	{
	  if(eye[i]>=1.1)
	    data[0][i]++;
	  else if(eye[i]>=0.6)
	    data[1][i]++;
	  else if(eye[i]>=0.2)
	    data[2][i]++;
	  else
	    data[3][i]++;
	}      
    }
  for(int i=0;i<4;i++)
    {
      cout<<data[i][0]<<" "<<data[i][1]<<endl;
    }
}

C++: #include<bits/stdc++.h>
using namespace std;
int main()
{
    int leye[4]={0,0,0,0},reye[4]={0,0,0,0};
    double lef,righ;
    while(cin>>lef>>righ){
        if(lef==0.1)leye[0]++;
?????? else if(lef<0.6)leye[1]++;
 else if(lef<1.1)leye[2]++;
 else leye[3]++;
        if(righ==0.1)reye[0]++;
 else if(righ<0.6)reye[1]++;
 else if(righ<1.1)reye[2]++;
 else reye[3]++;
    }
    for(int i=3;i>-1;i--)cout<<leye[i]<<" "<<reye[i]<<endl;
}

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

int main(){

	int cnt[4][4] = {0};
	double l, r, sight[5];

	sight[0] = 2.0;
	sight[1] = 1.1;
	sight[2] = 0.6;
	sight[3] = 0.2;
	sight[4] = 0.0;

	while(cin >> l >> r){
		for(int i=0; i<4; i++){
			if(sight[i+1] < l && l <= sight[i]){
				cnt[0][i]++;
			}
			if(sight[i+1] < r && r <= sight[i]){
				cnt[1][i]++;
			}
		}
	}

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

	return 0;

}