#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 */
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 */ |