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

C++: #include <iostream>
using namespace std;
 
int main(){
    double ln;
    double rn;
    int l1=0,r1=0,l2=0,r2=0,l3=0,r3=0,l4=0,r4=0;
    while(cin >> ln >> rn){
    	
    	
    	
        if(ln >= 1.1) l1++;
        else if(ln >= 0.6) l2++;
        else if(ln >= 0.2) l3++;
        else l4++;
        
        
        
        if(rn >= 1.1) r1++;
        else if(rn >= 0.6) r2++;
        else if(rn >= 0.2) r3++;
        else r4++;
    }
    cout<<l1<< " " <<r1<<endl;cout<<l2<< " " <<r2<<endl; cout<<l3<< " " <<r3<<endl;cout<<l4<< " " <<r4<<endl;
    return 0;
}

C++: #include<iostream>

using namespace std;

int main(){
	 
	double left, right;
	
	int A[2] = {};
	int B[2] = {};
	int C[2] = {};
	int D[2] = {};
	
	while( cin >> left >> right ) {
	
	if( left >= 1.1) A[0] ++;
	if( 0.6 <= left && left < 1.1) B[0] ++;
	if( 0.2 <= left && left < 0.6) C[0] ++;
	if( left < 0.2) D[0] ++;
	
	if( right >= 1.1) A[1] ++;
	if( 0.6 <= right && right < 1.1) B[1] ++;
	if( 0.2 <= right && right < 0.6) C[1] ++;
	if( right < 0.2) D[1] ++;
	
	
}
	cout << A[0] << " " << A[1] << "\n";
	cout << B[0] << " " << B[1] << "\n";
	cout << C[0] << " " << C[1] << "\n";
	cout << D[0] << " " << D[1] << "\n";
  	return 0;
}

C++: #include<bits/stdc++.h>
using namespace std;
int main(){
  double L,R;
  int numL[4]={0},numR[4]={0};
  int cnt=0;
  while(cin>> L>> R){
    cnt++;
    if(L<0.2) numL[3]++;
    else if(L<0.6) numL[2]++;
    else if(L<1.1) numL[1]++;
    else numL[0]++;

    if(R<0.2) numR[3]++;
    else if(R<0.6) numR[2]++;
    else if(R<1.1) numR[1]++;
    else numR[0]++;
  }

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

C++: #include<stdio.h>
int left[4];
int right[4];
int main(){
	double a,b;
	while(~scanf("%lf%lf",&a,&b)){
		if(a<0.2)left[3]++;
		else if(a<0.6)left[2]++;
		else if(a<1.1)left[1]++;
		else left[0]++;
		if(b<0.2)right[3]++;
		else if(b<0.6)right[2]++;
		else if(b<1.1)right[1]++;
		else right[0]++;
	}
	for(int i=0;i<4;i++)printf("%d %d\n",left[i],right[i]);
}

C++: # include <iostream>
# include <algorithm>
# include <vector>
# include <string>
# include <set>
# include <map>
# include <cmath>
# include <iomanip>
# include <functional>
# include <utility>
# include <stack>
# include <queue>
# include <list>
# include <unordered_map>
constexpr int MOD = 1000000000 + 7;
constexpr int INF = 2000000000;

int main() {
	double a, b;
	int A = 0, B = 0, C = 0, D = 0;
	int bA = 0, bB = 0, bC = 0, bD = 0;
	while (std::cin >> a >> b) {
		if (a >= 1.1)A++;
		else if (a >= 0.6)B++;
		else if (a >= 0.2)C++;
		else D++;

		if (b >= 1.1)bA++;
		else if (b >= 0.6)bB++;
		else if (b >= 0.2)bC++;
		else bD++;
	}
	std::cout << A << " " << bA << std::endl;
	std::cout << B << " " << bB << std::endl;
	std::cout << C << " " << bC << std::endl;
	std::cout << D << " " << bD << std::endl;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

vector<vector<int>> a(4, vector<int>(2));

void set_ans(double val, int lr)
{
    if (val >= 1.1)
        a.at(0).at(lr)++;
    else if (val >= 0.6)
        a.at(1).at(lr)++; 
    else if (val >= 0.2)
        a.at(2).at(lr)++;
    else
        a.at(3).at(lr)++;
}
int main() {
    double l, r;
    
    while (cin >> l >> r) {
        set_ans(l, 0);
        set_ans(r, 1);
    }

    rep(i, 4) {
        cout << a.at(i).at(0) << " " << a.at(i).at(1) << endl;
    }
}

C++: #include <iostream>
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;
int main(void){
    int left[4] = {0,0,0,0},right[4] = {0,0,0,0};
    double l_e,r_e;
    while(scanf("%lf %lf",&l_e,&r_e)!=EOF){
        if(l_e >= 1.1){
            left[0]++;
        }else if(l_e >= 0.6){
            left[1]++;
        }else if(l_e >= 0.2){
            left[2]++;
        }else{
            left[3]++;
        }
 
        if(r_e >= 1.1){
            right[0]++;
        }else if(r_e >= 0.6){
            right[1]++;
        }else if(r_e >= 0.2){
            right[2]++;
        }else{
            right[3]++;
        }
    }
    for(int i=0;i<4;i++){
        cout << left[i] << " " << right[i] << endl;
    }
    
    return 0;
}

C++: #include <stdio.h>

struct eye{
	int Left,Right;
};

int main(){
	eye A={0,0},B={0,0},C={0,0},D={0,0};
	/*A.Left=B.Left=C.Left=D.Left=0;
	A.Right=B.Right=C.Right=D.Right=0;*/
	float L,R;
	while(scanf("%f%f",&L,&R)!=EOF){
		if(L>=1.1) A.Left++;
		else if(L>=0.6) B.Left++;
		else if(L>=0.2) C.Left++;
		else D.Left++;
		if(R>=1.1) A.Right++;
		else if(R>=0.6) B.Right++;
		else if(R>=0.2) C.Right++;
		else D.Right++;
	}
	printf("%d %d\n",A.Left,A.Right);
	printf("%d %d\n",B.Left,B.Right);
	printf("%d %d\n",C.Left,C.Right);
	printf("%d %d\n",D.Left,D.Right);
	return 0;
}

C++: #include <cstdio>
int et[2][4] = {0};

void etest(int eangle,float epower){
	if(epower >= 1.1){
		et[eangle][0]++;
	}
	else if(epower >= 0.6 && epower < 1.1){
		et[eangle][1]++;
	}
	else if(epower >= 0.2 && epower < 0.6){
		et[eangle][2]++;
	}
	else{
		et[eangle][3]++;
	}
	return ;
}

int main(){
	float l,r;
	while(~scanf("%f%f",&l,&r)){
		etest(0,l),etest(1,r);
	}
	for(int i=0;i<4;i++){
		printf("%d %d\n",et[0][i],et[1][i]);
	}
	return 0;
}

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

int main() {
  double a[3] = {0.2, 0.6, 1.1};
  int c[2][4];
  double l, r;

  for (int i=0; i<4; i++) {
    c[0][i] = c[1][i] = 0;
  }
  while (cin >> l >> r) {
    ++c[0][distance(a, upper_bound(a, a+3, l))];
    ++c[1][distance(a, upper_bound(a, a+3, r))];
  }
  for (int i=3; i>=0; i--) {
    cout << c[0][i] << " " << c[1][i] << endl;
  }
  return 0;
}

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

int main()
{
  int left[4]  = { 0, 0, 0, 0, };
  int right[4] = { 0, 0, 0, 0, };   //人数

  while (true)
  {
    double l_eye, r_eye;
    cin >> l_eye >> r_eye;
    if ( cin.eof() ) break;
    if ( 1.1 <= l_eye )       // left
    {
      left[0]++;
    }
    else if ( 0.6 <= l_eye )
    {
      left[1]++;
    }
    else if ( 0.2 <= l_eye )
    {
      left[2]++;
    }
    else
    {
      left[3]++;
    }

    if ( 1.1 <= r_eye )       // right
    {
      right[0]++;
    }
    else if ( 0.6 <= r_eye )
    {
      right[1]++;
    }
    else if ( 0.2 <= r_eye )
    {
      right[2]++;
    }
    else
    {
      right[3]++;
    }
  }
  for (int i=0; i<4; i++)
  {
    cout << left[i] << ' ' << right[i] << endl;
  }
}