1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
#include <iostream>

using namespace std;

int main()
{
	cin.tie(0);
	cout.tie(0);
	ios_base::sync_with_stdio(false);
	
	int n;
	cin >> n;
	int typ[n];
	int x[n];
	int y[n];
	int czasx[n];
	int czasy[n];
	bool dosx[n];
	bool dosy[n];
	int licznikx=0;
	int liczniky=0;
	int stluczkiy[n];
	int stluczkix[n];
	int bufor;
	for(int i=0;i<n;i++)
	{
		cin>>typ[i];
		cin>>bufor;
		if(typ[i]==1)
		{
			x[licznikx] = bufor;
			cin>>czasx[licznikx];
			dosx[licznikx] = true;
			licznikx++;
		}
		else
		{
			y[liczniky] = bufor;
			cin>>czasy[liczniky];
			dosy[liczniky] = true;
			liczniky++;
		}
	}

	int st = 0;
	for(int i4=0;i4<liczniky;i4++)
		{
			for(int i5=0;i5<licznikx;i5++)
			{
				if(x[i5]+czasy[i4]==czasx[i5]+y[i4])
				{
					stluczkiy[st] = i4;
					stluczkix[st] = i5;
					st++;
					
				}
			}	
		}
		
	int wypadkix[licznikx];
	int wypadkiy[liczniky];
	for(int j3=0;j3<liczniky;j3++)
	{
		wypadkiy[j3]=0;
	}
	for(int j4=0;j4<licznikx;j4++)
	{
		wypadkix[j4]=0;
	}

	for(int i6=0;i6<st;i6++)
	{
		wypadkiy[stluczkiy[i6]]++;
		wypadkix[stluczkix[i6]]++;
	}
	for(int i7=0;i7<st;i7++)
	{
		if(wypadkiy[stluczkiy[i7]]>wypadkix[stluczkix[i7]]&&wypadkiy[stluczkiy[i7]]!=-1&&wypadkix[stluczkix[i7]]!=-1)
		{
			dosy[i7]=false;
			wypadkiy[stluczkiy[i7]]=-1;
		}
		if(wypadkiy[stluczkiy[i7]]<=wypadkix[stluczkix[i7]]&&wypadkiy[stluczkiy[i7]]!=-1&&wypadkix[stluczkix[i7]]!=-1)
		{
			dosx[i7]=false;
			wypadkix[stluczkix[i7]]=-1;
		}
	}
	int wynik=0;
	for(int i8=0;i8<liczniky;i8++)
	{
		if(!dosy[i8])
		{
			wynik++;
		}
	}
	
	for(int i9=0;i9<licznikx;i9++)
	{
		if(!dosx[i9])
		{
			wynik++;
		}
	}
	cout <<wynik;
}