Рассмотрим первый тест. Мы знаем, что карточки пронумерованы от 1 до N, и что утеряна была ровно одна карточка. Пусть x равен сумме номеров всех карточек от 1 до N. Тогда y равен сумме номеров карточек, что даны нам во вводе. Значит, номер потерявшейся карточки - это x - y
x = 1 + 2 + 3 + 4 + 5 = 15
y = 3 + 5 + 1 + 4 = 13
ans = x - y = 15 - 13 = 2, ответ: 2.
Правда, тогда придется "угадать" тест, где N равно единице, поскольку мы используем do-while для ввода. Логично, что в наборе из одной карточки могла потеряться только эта единственная карточка.
КодДан в приложении.
Program fantscrin;
const n = 15;
const m = 10;
Var x: array [1..n] of real;
y: array [1..n] of real;
z: array [1..n+m] of real;
i,e_1,e_2,g:integer; s,p,min:real;
Begin
for i:=1 to n do
x[i]:=random(20)-10;
for i:=1 to m do
y[i]:=random(10)-5;
for i:=1 to n do
write(x[i],' ');
s:=0;
for i:=1 to n do
if(i mod 2 <> 0) then s:=s+x[i];
for i:=1 to n do
if (x[i] < 0) then
begin
e_1:=i;
break;
end;
for i:=n downto 1 do
if (x[i] < 0) then
begin
e_2:=i;
break;
end;
p:=1;
for i:=e_1 to e_2 do
p:=p*x[i];
for i:=1 to n do
z[i]:=x[i];
for i:=1 to m do
z[n+i]:=y[i];
min:=z[1];
g:=1;
for i:=2 to n+m do
if (z[i] < min) then
begin
min:=z[i];
g:=i;
end;
writeln('');
writeln('1. : ',s);
writeln('2. : ',p);
for i:=1 to m do
write(y[i],' ');
writeln('');
for i:=1 to n+m do
write(z[i],' ');
for i:=g to n+m-1 do
z[i]:=z[i+1];
z[n+m]:=0;
writeln('');
writeln(g);
for i:=1 to n+m-1 do
write(z[i],' ');
End.
begin
write ('Введите цену конфет красная шапочка (за 1 кг): ');
readln (a);
write ('Введите цену конфет алые паруса (за 1 кг): ');
readln (b);
write ('Введите цену конфет чародейки (за 1 кг): ');
readln (c);
d:=(a/1000)*200;
e:=(b/1000)*150;
f:=(c/1000)*100;
g:=d+e+f;
WRITELN;
write ('Стоимость набора конфет составила: ',g,' рублей');
end.
Блок-схема в прикреплённых файлах