Нарисуем диаграмму Эйлера-Венна для всех запросов, содержащих Маркиз (см. вложение). Каждой области на диаграмме соответствует множество результатов, найденных по какому-либо запросу.
Нам необходимо найти общее число результатов, содержащих Маркиз, а также Граф ИЛИ Виконт. Глядя на диаграмму, понимаем, что если сложим количества результатов по запросам Граф, Виконт (круг + прямоугольник), то получим то, что надо, за исключением того, что область пересечения (Граф И Виконт) окажется посчитанной дважды. Тогда, чтобы получить верный ответ, нужно сложить количество ответов на запросы Граф, Виконт и вычесть количество ответов на запрос Граф И Виконт.
Нарисуем диаграмму Эйлера-Венна для всех запросов, содержащих Маркиз (см. вложение). Каждой области на диаграмме соответствует множество результатов, найденных по какому-либо запросу.
Нам необходимо найти общее число результатов, содержащих Маркиз, а также Граф ИЛИ Виконт. Глядя на диаграмму, понимаем, что если сложим количества результатов по запросам Граф, Виконт (круг + прямоугольник), то получим то, что надо, за исключением того, что область пересечения (Граф И Виконт) окажется посчитанной дважды. Тогда, чтобы получить верный ответ, нужно сложить количество ответов на запросы Граф, Виконт и вычесть количество ответов на запрос Граф И Виконт.
320 + 575 - 55 = 840
ответ. 840.
не так уж и трудно, если
program project2;
var
n,a,b,c,i,k,max,min: longint;
inp,outp: text;
begin
assign(inp,'input.txt');
reset(inp);
assign(outp,'output.txt');
rewrite(outp);
readln(inp,n);
max: =0;
min: =0;
c: =0;
for i: =1 to n do
begin
read(f1,a);
if i=1 then
b: =a;
if a> max then
max: =a;
k: =a-c;
c: =a;
if k< 0 then
begin
k: =abs(k);
min: =min+k;
if k> min then
min: =k;
end;
end;
max: =max-b;
write(outp,max,' ',min);
close(inp);
close(outp);
end.