Szczegółowe omówienie zadania Wiersz:
https://youtu.be/NAPLYSpHlNU?t=1708
–
Zadanie przygotowuje do Olimpiady Informatycznej.
Ćwiczy operacje na tekstach, wczytywanie całych linii, …
https://youtu.be/NAPLYSpHlNU?t=1708
–
Zadanie przygotowuje do Olimpiady Informatycznej.
Ćwiczy operacje na tekstach, wczytywanie całych linii, …
–
Poniżej kod wzorcowy do zadania użyty w powyższym omówieniu:
#include <bits/stdc++.h>
using namespace std;
string samogloski = “aeiouy”;
int CzySamogloska (char znak) {
int i;
for (i=0; i<samogloski.size(); ++i)
if ( samogloski[i] == znak )
return true;
return false;
}
int IleSamoglosek (string wers) {
int i, liczba_samoglosek;
liczba_samoglosek = 0;
for (i=0; i<wers.length(); ++i) {
if ( CzySamogloska( wers[i] ) == 1 ) {
++liczba_samoglosek;
}
}
return liczba_samoglosek;
}
void UsunSpacje (string &wers) {
string wers_bez_spacji;
int i;
for (i = 0; i < wers.size(); ++i) {
if ( wers[i] != ‘ ‘) {
wers_bez_spacji += wers[i];
}
}
wers = wers_bez_spacji;
}
int CzyTakieSameKoncowki (string wers1, string wers2, int dlugosc_rymowania) {
int i;
for (i = 0; i < dlugosc_rymowania; ++i) {
if (wers1[wers1.size() – i – 1] != wers2[wers2.size() – i – 1]) {
return 0;
}
}
return 1;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_par_wersow, dlugosc_rymowania;
int liczba_rymujacych_par;
string wers1, wers2;
int i;
cin >> liczba_par_wersow;
cin >> dlugosc_rymowania;
getline(cin, wers1);
liczba_rymujacych_par = 0;
for (i=0; i<liczba_par_wersow; ++i) {
getline(cin, wers1);
getline(cin, wers2);
UsunSpacje(wers1);
UsunSpacje(wers2);
if (wers1.size() < dlugosc_rymowania)
continue;
if (wers2.size() < dlugosc_rymowania)
continue;
if ( CzyTakieSameKoncowki(wers1, wers2, dlugosc_rymowania) == 0 )
continue;
if ( IleSamoglosek(wers1) != IleSamoglosek(wers2) )
continue;
++liczba_rymujacych_par;
}
cout << liczba_rymujacych_par << “\n”;
return 0;
}