#include <iostream> #include <vector> using namespace std; struct puszka { vector<int> poczatki; vector<int> konce; }; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int ilePuszek, iloscPrzedzilow; cin >> ilePuszek >> iloscPrzedzilow; vector<puszka> puszki(ilePuszek + 1); int kolor, poczatek, koniec; while(iloscPrzedzilow--) { cin >> poczatek >> koniec >> kolor; puszki[poczatek].poczatki.push_back(kolor); puszki[koniec].konce.push_back(kolor); } int kolory[4]{}, licznik = 0; for (int i = 1; i < puszki.size(); i++) { for (int j = 0; j < puszki[i].poczatki.size(); j++) kolory[puszki[i].poczatki[j]]++; if(kolory[1] > 0 && kolory[2] > 0 && kolory[3] == 0) licznik++; for (int j = 0; j < puszki[i].konce.size(); j++) kolory[puszki[i].konce[j]]--; } cout << licznik; return 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 | #include <iostream> #include <vector> using namespace std; struct puszka { vector<int> poczatki; vector<int> konce; }; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int ilePuszek, iloscPrzedzilow; cin >> ilePuszek >> iloscPrzedzilow; vector<puszka> puszki(ilePuszek + 1); int kolor, poczatek, koniec; while(iloscPrzedzilow--) { cin >> poczatek >> koniec >> kolor; puszki[poczatek].poczatki.push_back(kolor); puszki[koniec].konce.push_back(kolor); } int kolory[4]{}, licznik = 0; for (int i = 1; i < puszki.size(); i++) { for (int j = 0; j < puszki[i].poczatki.size(); j++) kolory[puszki[i].poczatki[j]]++; if(kolory[1] > 0 && kolory[2] > 0 && kolory[3] == 0) licznik++; for (int j = 0; j < puszki[i].konce.size(); j++) kolory[puszki[i].konce[j]]--; } cout << licznik; return 0; } |