Я не понимаю почему элементы мапы и вектора не возводятся в квадрат. #include
#include
#include
#include
using namespace std;
template
T Sqr(T a) {
a *= a;
return a;
}
template
pair Sqr(pair p) {
return {Sqr(p.first), Sqr(p.second)};
}
template
map Sqr(map m) {
for (pair i : m) {
i.second = Sqr(i.second);
}
return m;
}
template
vector operator*(vector lhs, const vector & rhs) {
for (T i : lhs) {
i = Sqr(i);
}
return lhs;
}
int main() {
// Пример вызова функции
vector v = {1, 2, 3};
cout << "vector:";
for (int x : (v * v)) {
cout << ' ' << x;
}
cout << endl;
map > map_of_pairs = {
{4, {2, 2}},
{7, {4, 3}}
};
cout << "map of pairs:" << endl;
for (const auto& x : Sqr(map_of_pairs)) {
cout << x.first << ' ' << x.second.first << ' ' << x.second.second << endl;
}
int a = 2;
cout << Sqr(a);
}
Объяснение:
const
n = 10;
ar:array[1..n] of integer = (-2, -1, 2, 3, 4, 5, -5, -6, 2, 5);
var
i:integer;
is_first_pol:boolean;
raz_pol:integer;
begin
raz_pol:=0;
is_first_pol:=true; // флаг того, что найденное положительное число - первое
for i:=1 to n do begin
if (ar[i] > 0) then
if (is_first_pol) then begin
// если найденное полодительное число - первое, то
raz_pol:=ar[i]; // в нашу разницу заносим это число
is_first_pol:=false; // меняем флаг
end
else raz_pol:=raz_pol - ar[i]; // иначе вычисляем разницу
end;
writeln(raz_pol);
end.
перо Сместиться в точку (1,7) Сместиться в точку (1,5) Поднять перо Сместиться на вектор (0,-2) Опустить перо Сместиться на вектор (2,0) Сместиться в точку (3,5) Сместиться на вектор (-2,0) Поднять перо Сместиться в точку (4,5) Опустить перо Сместиться на вектор (2,0) Поднять перо Сместиться в точку (5,6) Опустить перо Сместиться в точку (5,4) Поднять перо Сместиться в точку (7,3) Опустить перо Сместиться на вектор (2,0) Сместиться на вектор (0,4) Сместиться в точку (7,7) Сместиться в точку (7,5) Сместиться в точку (9,5) Поднять перо В ответе укажите только число, без пробелов и каких-либо знаков препинания, например 100 ответ:
Объяснение: