//у меня прошел все тесты
#include < iostream>
#include < vector>
#include < algorithm>
using namespace std;
int abc(int a)
{
if(a > 0)
return a;
return a *= -1;
}
int main()
{
int n;
cin> > n;
vector< int> d(n+1);
//ввод
for(int i = 1; i< =n; i++)
{
cin> > d[i];
}
vector< int> b(n+1);
b[1] = d[1];
b[2] = abc(d[2] - d[1]);
//дп
for(int i = 3; i< =n; i++)
{
long a = abc( d[i] - d[i-1] );
long z = abc( 3 * ( d[i] - d[i-2] ) );
a = a + b[i-1];
z = z + b[i-2];
b[i] = min(a,z);
// cout< < b[i]< < " "< < i< < endl;
if(i == 3 & & b[i] == z)
{
b[i] -= d[i-2];
}
}
cout< < b[n]< < endl
}
дан ряд чисел:
1 2 3 4 5 6 7 8 9 10 11
рассмотрим наихудший вариант попадания
1. говорим цифру 2, в ответ ничего не слышим, соответственно в 1 и 3 тоже ничего нет
2. говорим цифру 5, в ответ ничего не слышим, соответственно в 4 и 6 тоже ничего нет
3. говорим цифру 8, в ответ ничего не слышим, соответственно в 7 и 9 тоже ничего нет
4. говорим цифру 10, в ответ слышим "попал" или "почти попал", и сразу становится понятно, где цифра.
если слышим раньше "попал", то на этом останавливаемся.
если слышим раньше "почти попал", то стреляем в соседнюю, и если попадаем, то цепочка прекращается, если ничего не слышим, то будет число, которое мы не называли.
ответ: 4 - наименьшее количество чисел при худшем раскладе.
Поделитесь своими знаниями, ответьте на вопрос:
Прога на паскале. ввести элемент, ввести массив. если в массиве присудствует этот элемент, то ничего не делаем. если его нет, то нужно вставить его в середину массива (если массив не четный, то по любую сторону от элемента, находящегося в его середине)
var a:array[1..n+1] of integer;
k,i:integer; b:boolean;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(21)-10;
write(a[i]:4);
end;
writeln;
write('Введите число: '); readln(k);
b:=false;
for i:=1 to n do
if a[i]=k then b:=true;
if not b then
begin
for i:=n+1 downto n div 2 + 1 do a[i]:=a[i-1];
a[n div 2]:=k;
for i:=1 to n+1 do write(a[i]:4);
writeln;
end
else writeln('Массив не изменился');
end.
Пример:
6 10 -5 -3 -9 -8 -3 3 -9 7
Введите число: 4
6 10 -5 -3 4 -9 -8 -3 3 -9 7