#include #include #include #include #include #include using namespace std; bool czy_powtarzajace_cyfry(const string& numer) { for(int i = 2; i < numer.size(); i++) { if(numer[i] == numer[i-1] && numer[i] == numer[i-2]) return true; } return false; } int liczba_numerow(const string& nazwa_pliku) { ifstream plik(nazwa_pliku); string linia; int liczba = 0; while (getline(plik, linia)) { if(czy_powtarzajace_cyfry(linia)) liczba++; } plik.close(); return liczba; } int liczba_rodzin_numerow(const string& nazwa_pliku) { ifstream plik(nazwa_pliku); string linia; map dlugosci; while (getline(plik, linia)) { dlugosci[linia.size()]++; } plik.close(); return dlugosci.size(); } void zapisz_rodziny_numerow(const string& nazwa_pliku_we, const string& nazwa_pliku_wy) { ifstream plik_we(nazwa_pliku_we); string linia; map> rodziny; while (getline(plik_we, linia)) { rodziny[linia.size()].push_back(linia); } plik_we.close(); ofstream plik_wy(nazwa_pliku_wy); for(auto& rodzina : rodziny) { sort(rodzina.second.begin(), rodzina.second.end()); for(const auto& numer : rodzina.second) { plik_wy << numer << ' '; } plik_wy << '\n' << '\n'; } plik_wy.close(); } int main() { string nazwa_pliku_we = "numery.txt"; string nazwa_pliku_wy = "rodziny_numerow.txt"; cout << "Odp. 1: " << liczba_numerow(nazwa_pliku_we) << '\n'; cout << "Odp. 2: " << liczba_rodzin_numerow(nazwa_pliku_we) << '\n'; zapisz_rodziny_numerow(nazwa_pliku_we, nazwa_pliku_wy); return 0; }