program xxx;
var i, j, k, n, p, s : integer;
a : array [1..20] of integer;
begin
write ('введите количество инверсий -');
readln(k);
write ('введите количество ламп -');
readln(n);
for i:=1 to n do
a[i]:=0;
for i:=1 to k do
begin
write ('введите инверсию P-');
readln(p);
j:=p;
while j<=n do
begin
if a[j]=0 then a[j]:=1 else a[j]:=0;
j:=j+p
end
end;
s:=0;
for i:=1 to n do
if a[i]=1 then s:=s+1;
write ('Ламп горит -', s);
readln
end.
Дополню предыдущий ответ.
в первой строке получили из файла элементы, запомнили в f
скорее всего они там находятся в формате str((думаю в файле были цифры разделенные пробелами)
соответственно сейчас у нас f представляет строку состоящую из чисел разделенных пробелами
с f.split() разбиваем строку по определенными символам(символ указывается в кавычках внутри скобок), когда скобки пустые, разбивка происходит по пробелу
функция вернула нам массив, теперь f представляет массив из чисел в формате str
функция map в данной случае из формата str делает все элементы массива форматом int(в скобках функции указываем нужный формат, а через запятую объект)
однако функция map вернула нам f в формате map
соответственно используя list(f) мы приводим f к формату list(так можно делать со всеми типами данных, int(...), str(...) (если конечно приведение к другому типу возможно))
Объяснение:
#include <iostream>
using namespace std;
int main(){
int a,b,h;
cin >> a >> b >> h;
int S = (a+b)/2*h;
cout << S;
}