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
#include <bits/stdc++.h>
const int MAXN = 1000000;
const int MAXT = 1000000;
std::vector <std::pair <int , int>> proste [MAXN + MAXT + 4];

int main(){
    int n, r, w, t;
    scanf("%i", &n);
    for (int i=0; i<n; i++){
        scanf("%i%i%i", &r, &w, &t);
        if (r-1){
            proste[w-t+MAXT].push_back( std::make_pair(w, -t));
            continue;
        }
        proste[w-t+MAXT].push_back( std::make_pair(-t, w));
    }
    int wynik=0, poz, pion;
    for (int i=1; i<=MAXN+MAXT+2; i++){
        poz = 0;
        pion = 0;
        for (int j=0; j<proste[i].size(); j++){
            if (proste[i][j].first>0){
                poz++;
                continue;
            }
            pion++;
        }
        wynik+=std::min(pion, poz);
    }
    printf("%i", wynik);
}