#include <iostream> #include <string> #include <vector> struct Runda { int zadania[3] = {0, 0, 0}; //ilosc zadan dla dywizji void DodajZadanie(char dywizja) { if (dywizja == 'A') zadania[0]++; else if (dywizja == 'B') zadania[1]++; else zadania[2]++; } bool DobraRunda(int ileMaBycZadan) { return ((zadania[0] >= ileMaBycZadan) && (zadania[1] >= ileMaBycZadan) && (zadania[2] >= ileMaBycZadan)); } }; int main() { int ilDanych; std::cin >> ilDanych; std::vector<Runda> rundy = { Runda(), Runda(), Runda(), Runda(), Runda() }; while (ilDanych--) { std::string temp; std::cin >> temp; rundy[temp[0] - '0' - 1].DodajZadanie(temp[1]); } bool dobryZestaw = true; for (int i = 0; i < 5; i++) { if (i == 4 && !rundy[i].DobraRunda(2)) { dobryZestaw = false; break; } if (!rundy[i].DobraRunda(1)) { dobryZestaw = false; break; } } std::cout << (dobryZestaw ? "TAK" : "NIE"); 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 48 49 50 51 52 53 54 55 56 57 58 59 60 | #include <iostream> #include <string> #include <vector> struct Runda { int zadania[3] = {0, 0, 0}; //ilosc zadan dla dywizji void DodajZadanie(char dywizja) { if (dywizja == 'A') zadania[0]++; else if (dywizja == 'B') zadania[1]++; else zadania[2]++; } bool DobraRunda(int ileMaBycZadan) { return ((zadania[0] >= ileMaBycZadan) && (zadania[1] >= ileMaBycZadan) && (zadania[2] >= ileMaBycZadan)); } }; int main() { int ilDanych; std::cin >> ilDanych; std::vector<Runda> rundy = { Runda(), Runda(), Runda(), Runda(), Runda() }; while (ilDanych--) { std::string temp; std::cin >> temp; rundy[temp[0] - '0' - 1].DodajZadanie(temp[1]); } bool dobryZestaw = true; for (int i = 0; i < 5; i++) { if (i == 4 && !rundy[i].DobraRunda(2)) { dobryZestaw = false; break; } if (!rundy[i].DobraRunda(1)) { dobryZestaw = false; break; } } std::cout << (dobryZestaw ? "TAK" : "NIE"); return 0; } |