type Cl = class
a:integer;
constructor Create(b:integer);
procedure SetVal(b:integer);
function GetVal:integer;
procedure Sq;
end;
constructor Cl.Create(b:integer);
begin
a := b;
end;
procedure Cl.SetVal(b:integer);
begin
a := b;
end;
function Cl.GetVal:integer;
begin
GetVal := a;
end;
procedure Cl.Sq;
begin
if a < 0 then
writeln('a ^ 2 = ', a * a)
else
writeln('Error');
end;
var
Obj:Cl;
a :integer;
begin
write('a = ');
readln(a);
Obj := Cl.Create(a);
Obj.Sq;
Readln;
Obj.Destroy;
end.
В город М напрямую можно попасть только из города Н (в который напрямую можно попасть только из города Ж), и из города Ж. Значит, для любого пути в Ж из А есть два варианта, как проехать в М.
В город Ж можно попасть напрямую из городов В, Г, и Д. В город В из города А можно попасть тремя путями: АБВ, АГВ и АБГВ, в город Г - двумя: АГ и АБГ, в город Е - тремя: АГЕ, АДЕ и АБГЕ.
Итого: Из города А в город Ж есть 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";
}
var a:integer;
begin
readln(a);
if (a<0) then a:=sqr(a);
writeln(a) else writeln('Error');
end.