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
#include <iostream>
#include <algorithm>

using namespace std;

const int N=500005;
int j[N],d[N];

int main()
{
    int n,l,w,t,licz_j=0,licz_d=0,wyn=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>l>>w>>t;
        w-=t;
        if(l==1)
            j[licz_j++]=w;
        else
            d[licz_d++]=w;
    }
    j[licz_j++]=d[licz_d++]=N*4;
    sort(j,j+licz_j);
    sort(d,d+licz_d);
    int i=0,k=0,pk,pi;
    while(i<licz_j-1 || k<licz_d-1)
    {
        while(j[i]<d[k])
            i++;
        while(j[i]>d[k])
            k++;
        if(j[i]==d[k] && i<licz_j-1 && k<licz_d-1)
        {
            pi=i; pk=k;
            while(j[pi]==d[k])
                pi++;
            while(j[i]==d[pk])
                pk++;
            wyn+=min(pi-i,pk-k);
            i=pi; k=pk;
        }
    }
    cout<<wyn<<"\n";
}