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 <iomanip>
using namespace std;
void solve(){
    double r,l;
    int right[4] = {0,0,0,0};
    int left[4] = {0,0,0,0};
    while(cin >> l >> r){
        if(r >= 1.1){
            right[0]++;
        }else if(r >= 0.6){
            right[1]++;
        }else if(r >= 0.2){
            right[2]++;
        }else{
            right[3]++;
        }
        if(l >= 1.1){
            left[0]++;
        }else if(l >= 0.6){
            left[1]++;
        }else if(l >= 0.2){
            left[2]++;
        }else{
            left[3]++;
        }
    }
    for(int i=0;i<4;i++){
        cout << left[i] << " " << right[i] << endl;
    }
}
int main(){
    solve();
    return 0;
}

C++: #include <iostream>

using namespace std;

int main(void)
{
	int answer[4][2];

	for( int i = 0;i < 4;i++ ){
		for( int j = 0;j < 2;j++ ){
			answer[i][j] = 0;
		}
	}

	double left,right;

	while( cin >> left >> right ){
		if( left >= 1.1 ) answer[0][0]++;
		else if( left >= 0.6 ) answer[1][0]++;
		else if( left >= 0.2 ) answer[2][0]++;
		else answer[3][0]++;

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

	}

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

C++:     cout << la << " " << ra << endl;

C++: #include<stdio.h>
int main(void)
{
	float a,s,j;
	int d[5],f[5],i;
	for(i=1;i<=4;i++){
			d[i]=0;
			f[i]=0;
	}
	while(scanf("%f %f",&a,&s)!=EOF){
		if(a>=1.1){
			d[1]++;
		}
		else if(a>=0.6){
			d[2]++;
		}
		else if(a>=0.2){
			d[3]++;
		}
		else{
			d[4]++;
		}
		if(s>=1.1){
			f[1]++;
		}
		else if(s>=0.6){
			f[2]++;
		}
		else if(s>=0.2){
			f[3]++;
		}
		else{
			f[4]++;
		}
	}
	for(i=1;i<=4;i++){
		printf("%d %d\n",d[i],f[i]);
	}
	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<bits/stdc++.h>
using namespace std;
int main()
{
    int leye[4]={0,0,0,0},reye[4]={0,0,0,0};
    double lef,righ,ser[3]={0.2,0.4,0.5};
    while(cin>>lef>>righ){
        int rc=0,lc=0;
        for(int i=0;i<3&&(!rc||!lc);i++){
            lef-=ser[i];righ-=ser[i];
            if(lef<0&&!lc){
                lc++;
                leye[i]++;
            }
            if(righ<0&&!rc){
                rc++;
                reye[i]++;
            }
        }
        if(!lc)leye[3]++;
        if(!rc)reye[3]++;
    }
    for(int i=3;i>-1;i--)cout<<leye[i]<<" "<<reye[i]<<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.5)leye[1]++;
        else if(lef<1.1)leye[2]++;
        else leye[3]++;
        if(righ==0.1)reye[0]++;
        else if(righ<0.5)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++: //29
#include<iostream>

using namespace std;

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

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

int la, lb, lc, ld, ra, rb, rc, rd;
double l[40], r[40];
int n = 0;

int main() {
  
  for(int i=0; cin >> l[i] >> r[i]; i++, n++);
  
  for(int i=0; i<n; i++) {
    if( 1.1 <= l[i] ) la ++;
    if( 0.6 <= l[i] ) lb ++;
    if( 0.2 <= l[i] ) lc ++;
    if( r[i] < 0.2  ) ld ++;
    if( 1.1 <= r[i] ) ra ++;
    if( 0.6 <= r[i] ) rb ++;
    if( 0.2 <= r[i] ) rc ++;
    if( l[i] < 0.2  ) rd ++;
    cout << la << " " << ra << endl;
    cout << lb << " " << rb << endl;
    cout << lc << " " << rc << endl;
    cout << ld << " " << rd << endl;
  }
  
  return 0;
}

C++: #include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <numeric>
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <fstream>
using namespace std;

int main()
{
	const double base[] = { 0.0, 0.2, 0.6, 1.1, DBL_MAX };
	//»è	Í
	//A	1.1Èã
	//B	0.6Èã1.1¢
	//C	0.2Èã0.6¢
	//D	0.2¢ 

	string str = "";
	vector <vector <int> > t (4, vector<int> (2, 0 ) );
	int size = sizeof (base )/sizeof (base[0] );
	int i,j;

	while (getline (cin, str ) ){

		vector <double> eyes(2, 0.);
		stringstream ss(str);
		ss >> eyes[0] >> eyes[1];	// left, right order

		for (i = 0; i < 2; ++i){
			for (j = 0; j < size - 1; ++j){
				if (eyes[i] >= base[j] && eyes[i] < base[j+1] ){
					++t[j][i];
				} // end if
			} // end for
		} // end for
	} // end while

	for (i = 3; i >= 0; --i){
		cout << t[i][0] << ' ' << t[i][1] << endl;
	} // end for
		
	return 0;
}

C++: #include<stdio.h>
int main(void)
{
	double h,m;
	int cMA,cHA;
	int cMB,cHB;
	int cMC,cHC;
	int cMD,cHD;
	cMA=0;
	cHA=0;
	cMB=0;
	cHB=0;
	cMC=0;
	cHC=0;
	cMD=0;
	cHD=0;
		while(scanf("%lf %lf",&h,&m)!=EOF){
			if(h>=1.1){
				cHA++;
			}
			else if(0.6<=h && h<0.6){
				cHB++;
			}
			else if(0.2<=h && h<0.6){
				cHC++;
			}
			else{
				cHD++;
			}
			if(m>=1.1){
				cMA++;
			}
			else if(0.6<=m && m<1.1){
				cMB++;
			}
			else if(0.2<=m && m<0.6){
				cMC++;
			}
			else if(0.2>m){
				cMD++;
			}
		}
	printf("%d %d\n%d %d\n%d %d\n%d %d\n",cHA,cMA,cHB,cMB,cHC,cMC,cHD,cMD);
	return 0;
}

C++: #include<iostream>
using namespace std;
double t[4]={0.2,0.6,1.1,9999999.9};
double a,b;
int ans[4][2];
int main(){
  for(int i=0;i<4;i++)for(int j=0;j<2;j++)ans[i][j]=0;
  while(cin>>a>>b){
    for(int i=0;i<4;i++){
      if(a<t[i]){
	ans[3-i][0]++;
	break;
      }
    }
    for(int i=0;i<4;i++){
      if(b<t[i]){
	ans[3-i][1]++;
	break;
      }
    }
  }
  for(int i=0;i<4;i++){
    cout<<ans[i][0]<<' '<<ans[i][1]<<endl;
  }
  return 0;
}