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 <vector>
#include <list>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <string>
#include <sstream>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>

#define rep(i, n) for(int i = 0; i < n; i ++)
#define COUNT(i, n) for(int i = 1; i <= n; i ++)
#define ITER(c) __typeof((c).begin())
#define each(c, it) for(ITER(c) it =(c).begin(); it!=(c).end(); it++)
#define ALL(c) c.begin(), c.end()
#define mp make_pair
#define pb push_back
#define MEMSET(v, h) memset((v), h, sizeof(v))
 
using namespace std; 

typedef pair<int, int> pii;
typedef long long ll;
typedef vector<int> vi;
typedef vector<string> vs;

const int INF = 1 << 24;
const double BODER[4] = {1.1, 0.6, 0.2, 0.0};

int main(void){
    int res[4][2], cnt = 0;
    MEMSET(res, 0);
    
    for(double in; cin >> in; cnt ++)
        rep(i, 4) if(BODER[i] <= in){
            res[i][cnt % 2] ++;
            break;
        }

    rep(i, 4){ rep(j, 2) cout << (j ? " ":"") << res[i][j]; cout << endl; }
    
    return 0;
}

C++: #include <iostream>

using namespace std;

int main() {

  double eyesight[2];

  int a[2],b[2],c[2],d[2];


  for(int i=0;i<2;i++) a[i]=0;
  for(int i=0;i<2;i++) b[i]=0;
  for(int i=0;i<2;i++) c[i]=0;
  for(int i=0;i<2;i++) d[i]=0;
  
  while(cin >> eyesight[0] >> eyesight[1]) {

    for(int i=0;i<2;i++) {

      if(eyesight[i]>=1.1) a[i]++;

      else if(eyesight[i]>=0.6) b[i]++;

      else if(eyesight[i]>=0.2) c[i]++;
      
      else d[i]++;

    }

  }
  
  cout << a[0] << " " << a[1] << endl;
  cout << b[0] << " " << b[1] << endl;
  cout << c[0] << " " << c[1] << endl;
  cout << d[0] << " " << d[1] << endl;

  return 0;

}

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

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

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cstring>
#include <cstdlib>
#include <string>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()

int main() {
  double a,b;
  vector<int> nl(4), nr(4);
  while(cin >> a>> b) {
    if (a>=1.1) nl[0]++;
    else if (a>=0.6 && a<1.1) nl[1]++;
    else if (a>=0.2 && a<0.6) nl[2]++;
    else nl[3]++;
    if (b>=1.1) nr[0]++;
    else if (b>=0.6 && b<1.1) nr[1]++;
    else if (b>=0.2 && b<0.6) nr[2]++;
    else nr[3]++;
  }
  REP(i,4) {
    cout << nl[i] << " " << nr[i] << endl;
  }
}

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

int getRank(double x) {
	if (1.1 <= x) return 0;
	if (0.6 <= x) return 1; 
	if (0.2 <= x) return 2;
	return 3;
}

int main() {
	int resutls[4][2];
	double a, b;
	memset(resutls, 0, sizeof(resutls));
	while (cin >> a >> b) {
		resutls[getRank(a)][0]++;
		resutls[getRank(b)][1]++;
	}
	for (int i = 0; i < 4; i++) {
		cout << resutls[i][0] << ' ' << resutls[i][1] << endl;
	}
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(void){
    int i=0;
    double x;
    int out[8]={0};
    while(cin >> x) {
        if(i%2==0) {
            if(x >= 1.1) 
                out[0]++;
            else if(x>=0.6)
                out[2]++;
            else if(x>=0.2)
                out[4]++;
            else 
                out[6]++;
        }
        else {
            if(x >= 1.1) 
                out[1]++;
            else if(x>=0.6)
                out[3]++;
            else if(x>=0.2)
                out[5]++;
            else 
                out[7]++;
        }
        i++;
    }
    for(int i=0;i<8;i+=2) {
        cout << out[i] << " " << out[i+1] << endl; 
    }
    return 0;
}

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

#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)
#define INF (1<<29)

int main() {
	double rank[4] = {INF, 1.1, 0.6, 0.2};
	
	double in[2];
	int ans[2][4] = {};
	while (cin >> in[0] >> in[1]) {
		REP(i, 2) {
			int g = 0;
			REP(j, 4) if (in[i] < rank[j]) g++;
			ans[i][g - 1]++;
		}
	}
	
	REP(i, 4) printf("%d %d\n", ans[0][i], ans[1][i]);
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
int a[4][2];

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

C++: #include<iostream>
using namespace std;
int x[4][2];double a, b;
int main() {
	while (cin >> a >> b) {
		a *= 10; b *= 10;
		if (a == 1) {
			x[3][0]++;
		}
		else if (a < 6) {
			x[2][0]++;
		}
		else if (a < 11) {
			x[1][0]++;
		}
		else {
			x[0][0]++;
		}
		if (b == 1) {
			x[3][1]++;
		}
		else if (b < 6) {
			x[2][1]++;
		}
		else if (b < 11) {
			x[1][1]++;
		}
		else {
			x[0][1]++;
		}
	}
	cout << x[0][0] << ' ' << x[0][1] << endl;
	cout << x[1][0] << ' ' << x[1][1] << endl;
	cout << x[2][0] << ' ' << x[2][1] << endl;
	cout << x[3][0] << ' ' << x[3][1] << endl;
	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[0][i]<<' '<<a[1][i]<<endl;
}

C++: #include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <list>
#include <iostream>
#include <sstream>
#include <climits>
#include <cfloat>
#include <complex>


typedef long long ll;
const double Eps = 1e-6;

using namespace std;

int main()
{
	double t[] = { 1.1, 0.6, 0.2, 0 };
	int n[8];
	memset(n, 0, sizeof(n));
	double e[2];
	while (scanf("%lf %lf", e, e+1) != EOF)
	{
		for (int i = 0; i < 2; ++i)
		{
			int j;
			for (j = 0; e[i] < t[j]; ++j)
				;
			++n[i*4 + j];
		}
	}
	for (int i = 0; i < 4; ++i)
		printf("%d %d\n", n[i], n[4 + i]);

	return 0;
}

C++: #include<cstdio>
#include<iostream>
using namespace std;
int main(void){
	float l,r;
	int lx[4],rx[4],i;
	for(i=0;i<4;i++){
		lx[i]=0; rx[i]=0;
	}
	while(scanf("%f",&l)!=EOF){
		scanf("%f",&r);
		if(l>=1.1) lx[0]++;
		else if(l>=0.6) lx[1]++;
		else if(l>=0.2) lx[2]++;
		else lx[3]++;
		if(r>=1.1) rx[0]++;
		else if(r>=0.6) rx[1]++;
		else if(r>=0.2) rx[2]++;
		else rx[3]++;
	}
	for(i=0;i<4;i++) cout<<lx[i]<<' '<<rx[i]<<endl;
	return 0;
}