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++: /* 
 * File:   main.cpp
 * Author: freebsd
 *
 * Created on 2014/08/28, 10:07
 */

#include <cstdio>

using namespace std;

int main() {
    int Al = 0, Bl = 0, Cl = 0, Dl = 0;
    int Ar = 0, Br = 0, Cr = 0, Dr = 0;
    double templ = 0.0, tempr = 0.0;
    
    int i = 0;
    
    while (i != 39) {
        scanf("%f %f", &templ, &tempr);
    
        if(templ >= 1.1) {
            Al++;
        }else if (templ >= 0.6 && templ < 1.1) {
            Bl++;
        }else if (templ >= 0.2 && templ < 0.6) {
            Cl++;
        }else {
            Dl++;
        }
    
        if(tempr >= 1.1) {
            Ar++;
        }else if (tempr >= 0.6 && tempr < 1.1) {
            Br++;
        }else if (tempr >= 0.2 && tempr < 0.6) {
            Cr++;
        }else {
            Dr++;
        }
        
        i++; 
    }
    
    printf("%d %d\n", Al, Ar);
    printf("%d %d\n", Bl, Br);
    printf("%d %d\n", Cl, Cr);
    printf("%d %d\n", Dl, Dr);
    
    return 0;
}

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 e[8] = {0}, i;
	double l, r;
	while (cin >> l)
	{
		if (cin.eof()) break;
		cin >> r;
		if (l >= 1.1)		e[0]++;
		else if (l >= 0.6)	e[2]++;
		else if (l >= 0.2)	e[4]++;
		else				e[6]++;
		if (r >= 1.1)		e[1]++;
		else if (r >= 0.6)	e[3]++;
		else if (r >= 0.2)	e[5]++;
		else				e[7]++;
	}
	for (i = 0; i < 4; i++)
	{
		cout << e[i*2] << " " << e[i*2+1] << endl;
	}
}

C++: #include<iostream>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<string>
#include<vector>
#include<list>
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<cstring>
#include<stack>
#include<functional>
using namespace std;

int test(double e){
	if(e<0.2) return 3;
	if(e<0.6) return 2;
	if(e<1.1) return 1;
	else return 0;
}

int main(){
	int ansA[4]={},ansB[4]={};
	double A,B;
	while(cin>>A>>B){
		ansA[test(A)]++; ansB[test(B)]++;
	}
	for(int i=0;i<4;i++) printf("%d %d\n",ansA[i],ansB[i]);
	return 0;
}

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

int main(void){
  double l,r;
  double la=0;
  double ra=0;
  double lb=0;
  double rb=0;
  double lc=0;
  double rc=0;
  double ld=0;
  double rd=0;
  while(cin>>l>>r){
    if(l>=1.1)la+=1;
    else if(l>=0.6)lb+=1;
    else if(l>=0.2)lc+=1;
    else ld+=1;
    if(r>=1.1)ra+=1;
    else if(r>=0.6)rb+=1;
    else if(r>=0.2)rc+=1;
    else rd+=1;
  }
  cout<<la<<" "<<ra<<endl;
  cout<<lb<<" "<<rb<<endl;
  cout<<lc<<" "<<rc<<endl;
  cout<<ld<<" "<<rd<<endl;
  return 0;
}

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 { 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 { h++; }
	}
	cout << a << " " << b << endl << c << " " << d << endl << e << " " << f << endl
		<<g << " " << h << endl; 
		return 0;
}

C++: #include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <algorithm>
#include <map>
#include <set>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <climits>
using namespace std;

typedef long long ll;

#define REP(i,n,m) for(int i=n;i<m;i++)
#define rep(i,n) REP(i,0,n)

int main(){
  double a;
  int A[2],B[2],C[2],D[2];
  rep(i,2) A[i] = B[i] = C[i] = D[i] = 0;

  while(1){
    rep(i,2){
      if(!(cin>>a)){
        printf("%d %d\n",A[0],A[1]);
        printf("%d %d\n",B[0],B[1]);
        printf("%d %d\n",C[0],C[1]);
        printf("%d %d\n",D[0],D[1]);
        return 0;
      }

      if(a >= 1.1){
        A[i]++;
      }
      else if(a >= 0.6){
        B[i]++;
      }
      else if(a >= 0.2){
        C[i]++;
      }
      else{
        D[i]++;
      }
    }
  }
}

C++: #include<iostream>
#include<string>
using namespace std;
int main() {
	int a[4], b[4];
	fill(a, a + 4, 0);
	fill(b, b + 4, 0);
	double c, d;
	while (cin >> c >> d) {
		if (c >= 1.1)
			a[0]++;
		else if (c >= 0.6)
			a[1]++;
		else if (c >= 0.2)
			a[2]++;
		else
			a[3]++;
		if (d >= 1.1)
			b[0]++;
		else if (d >= 0.6)
			b[1]++;
		else if (d >= 0.2)
			b[2]++;
		else
			b[3]++;
	}
	for (int i = 0; i < 4; i++) {
		cout << a[i] << " " << b[i] << endl;
	}
}

C++: #include<iostream>
#include<cstdio>
using namespace std;
int main(){
  int eye1[4]={0},eye2[4]={0};
  double bell,hess;
  while(scanf("%lf %lf",&bell,&hess)!=EOF){
    if(bell>=1.1){
      eye1[0]++;
    }
    else if(bell>=0.6){
      eye1[1]++;
    }
    else if(bell>=0.2){
      eye1[2]++;
    }
    else{
      eye1[3]++;
    }
    if(hess>=1.1){
      eye2[0]++;
    }
    else if(hess>=0.6){
      eye2[1]++;
    }
    else if(hess>=0.2){
      eye2[2]++;
    }
    else{
      eye2[3]++;
    }
  }
  for(int i=0;i<4;i++){
    cout << eye1[i] << " " << eye2[i] << endl;
  }
}

C++: #include <cstdio>

int eye[2][4];
double x[2];

int main(){
	while(scanf("%lf%lf",&x[0],&x[1]) != EOF){
		for(int i = 0; i < 2; i++){
			if(x[i] >= 1.1) eye[i][0]++;
			else if(x[i] >= 0.6) eye[i][1]++;
			else if(x[i] >= 0.2) eye[i][2]++;
			else eye[i][3]++;
		}
	}
	for(int i = 0; i < 4; i++) printf("%d %d\n", eye[0][i], eye[1][i]);
}

C++: #include <iostream>
#include <algorithm>
#include <iomanip>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <numeric>
#include <bitset>
#include <cmath>

static const int MOD = 1000000007;
using ll = long long;
using u32 = unsigned;
using u64 = unsigned long long;
using namespace std;

template<class T> constexpr T INF = ::numeric_limits<T>::max()/32*15+208;

int main() {
    double l, r;
    vector<int> a(4), b(4);
    while(cin >> l >> r){
        if(l >= 1.1) a[0]++;
        else if(l >= 0.6) a[1]++;
        else if(l >= 0.2) a[2]++;
        else a[3]++;
        if(r >= 1.1) b[0]++;
        else if(r >= 0.6) b[1]++;
        else if(r >= 0.2) b[2]++;
        else b[3]++;
    }
    for (int i = 0; i < 4; ++i) {
        printf("%d %d\n", a[i], b[i]);
    }
    return 0;
}