В город М напрямую можно попасть только из города Н (в который напрямую можно попасть только из города Ж), и из города Ж. Значит, для любого пути в Ж из А есть два варианта, как проехать в М.
В город Ж можно попасть напрямую из городов В, Г, и Д. В город В из города А можно попасть тремя путями: АБВ, АГВ и АБГВ, в город Г - двумя: АГ и АБГ, в город Е - тремя: АГЕ, АДЕ и АБГЕ.
Итого: Из города А в город Ж есть 3+2+3=8 путей, из Ж в М - 2 пути. Для каждого пути из А в Ж есть оба варианта пути из Ж в М, поэтому умножаем: 8×2=16 путей.
ответ: 16 путей
Буду очень благодарен, если Вы отметите мой ответ как лучший!
В город М напрямую можно попасть только из города Н (в который напрямую можно попасть только из города Ж), и из города Ж. Значит, для любого пути в Ж из А есть два варианта, как проехать в М.
В город Ж можно попасть напрямую из городов В, Г, и Д. В город В из города А можно попасть тремя путями: АБВ, АГВ и АБГВ, в город Г - двумя: АГ и АБГ, в город Е - тремя: АГЕ, АДЕ и АБГЕ.
Итого: Из города А в город Ж есть 3+2+3=8 путей, из Ж в М - 2 пути. Для каждого пути из А в Ж есть оба варианта пути из Ж в М, поэтому умножаем: 8×2=16 путей.
ответ: 16 путей
Буду очень благодарен, если Вы отметите мой ответ как лучший!
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
signed main() {
char ok[10]{ 'b', 'v', 'g', 'd', 'z', 'l', 'm', 'n', 'r', 'w'};
string s;
getline(cin,s);
vector<string> words,ans;
string cur;
for(int i = 0; i < s.length(); i++){
if(s[i] != ' ') cur += s[i];
else{words.push_back(cur); cur.clear();}
}
for(auto i: words){
bool norm = false;
for(auto j: i)
if(strchr(ok,tolower(j))) norm = true;
if(norm) ans.push_back(i);
}
for(auto i: ans) cout << i << "\n";
}