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
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, pair<int, int>>> y;
vector<pair<int, pair<int, int>>> x;
vector<int> kolizje[500009];
int i_kol[500009];
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int i_aut, miej, czas, typ, wynik, a, b;
    cin >> i_aut;
    a = 0;
    b = 0;
    wynik = 0;
    for(int i= 1; i <= i_aut; i++){
        cin >> typ >> miej >> czas;
        if (typ == 1){
            y.push_back(make_pair(miej, make_pair(czas, i)));
            a += 1;
        }
        else{
            x.push_back(make_pair(miej, make_pair(czas, i)));
            b += 1;
        }
    }
    for (int z = 0; z < b; z++){
        for (int i = 0; i < a; i++){
            if (x[z].first + y[i].second.first == x[z].second.first + y[i].first){
                i_kol[x[z].second.second] += 1;
                i_kol[y[i].second.second] += 1;
                kolizje[x[z].second.second].push_back(y[i].second.second);
                kolizje[y[z].second.second].push_back(x[i].second.second);
            }
        }
    }
    sort(i_kol, i_kol + i_aut+1);
    while (i_kol[i_aut] > 0){
        for (auto i: kolizje[i_kol[i_aut]]){
            i_kol[i] -= 1;
        }
        i_kol[i_aut] = 0;
        sort(i_kol, i_kol + i_aut);
        wynik += 1;
    }
    cout << wynik << "\n";
}
/*
4
1 5 2
2 3 0
2 3 6
1 7 4

2
1 2 0
2 2 0
*/