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
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    unordered_map<int,int> numsX, numsY;
    for(int i = 0; i < n; i++) {
        int r, w, t;
        cin >> r >> w >> t;
        if(r == 1) {
            numsX[w - t]++;
        } else {
            numsY[w - t]++;
        }
    }
    
    int res = 0;
    for(auto p : numsX) {
        int key = p.first;
        int val = p.second;
        if(numsY.find(key) != numsY.end()) {
            res += min(val, numsY[key]);
        }
    }   
    cout << res << endl;   
}