Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
IceCortez
25 / 25 / 19
Регистрация: 25.03.2014
Сообщений: 233
#1

Шарики - Pascal ABC

05.12.2014, 20:23. Просмотров 509. Ответов 3
Метки нет (Все метки)

В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется
непрерывная цепочка из трех и более шариков одного цвета, она удаляется из линии. Все шарики
при этом сдвигаются друг к другу, и ситуация может повториться.
Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас
уничтожено. Естественно, непрерывных цепочек из трех и более одноцветных шаров в начальный
может быть не более одной.

Ввод
10 3 3 2 1 1 1 2 2 3 3
Вывод
10

В решении обязательно должен использоваться стек

Добавлено через 7 минут
Достаточно просто алгоритма

Добавлено через 1 час 12 минут
Up.

Добавлено через 1 час 15 минут
Up.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2014, 20:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шарики (Pascal ABC):

Не отскакивают шарики - Pascal ABC
Помогите пожалуйста, я не могу сделать так, чтобы шарики тоскакивали от стенок абсолютно упруго(т.е. углы отклонения от перпендикуляра к...

Игра «Прыгающие шарики 1» - Pascal ABC
«Прыгающие шарики 1». Исходная позиция - 8 лунок, в которых лежат отдельно 4 черных (слева) и 3 белых (справа) шарики, между которыми...

Программа отображает разноцветные шарики, которые движутся прямолинейно внутри области изображения - Pascal ABC
«Squash-2». Программа отображает разноцветные шарики, которые движутся прямолинейно внутри области изображения, отскакивая от стенок при...

Шарики - Pascal
Помогите пожалуста решить задачку через одномерный массив) В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда...

Узнать за какое минимальное время (в минутах) будут надуты все шарики при оптимальной работе всех участников. - Pascal
Школьный бал Во время проведения школьного бала планируется запустить m одинаковых воздушных шариков. Наполнить их воздухом...

Объекты.Игра "Шарики и кубики" - Pascal
При запуске «Шарики и кубики» на чистом экране появляются правила игры – список клавиш, с помощью которых можно управлять шариком и...

3
destap
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 12
05.12.2014, 20:50 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var
   a,a1:array[1..1000]of integer;
   n,k,k1,i,i1,i2,n1:integer;
begin
     read(n);
     for i:=1 to n do
         read(a[i]);
     writeln;
     n1:=n;
     k:=3;
     while k>=3 do
           begin
           k:=0;
           k1:=0;
           i:=2;
           while i<=n do
               begin
               if a[i]=a[i-1] then
                  begin
                  k1:=k1+1;
                  if k<=k1 then
                     k:=k1+1;
                  if i=n then
                     begin
                     if k>=3 then
                        for i1:=1 to i-k do
                            a1[i1]:=a[i1]
                     end
                  end
               else begin
                    if k<=k1 then
                       k:=k1+1;
                    k1:=0;
                    if k>=3 then
                       for i1:=1 to i-k-1 do
                           begin
                           a1[i1]:=a[i1];
                           i:=n
                           end
                    end;
               i:=i+1
               end;
           if k>=3 then
              begin
              i1:=i1+1;
              if i1+k-1<>n then
                 begin
                 for i2:=i1+k to n do
                     begin
                     a1[i1]:=a[i2];
                     i1:=i1+1
                     end
                 end;
              n:=n-k;
              for i:=1 to n do
                  a[i]:=a1[i]
              end
           end;
     writeln(n1-n)
end.
0
кот Бегемот
Платежеспособный зверь
8207 / 3778 / 691
Регистрация: 28.10.2009
Сообщений: 9,630
06.12.2014, 01:49 #3
Очень длинная ваша программа и путанная.
Вот так гораздо короче и проще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var
n,i,c,k,rez:integer;
a:array[0..1000]of integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
c:=n;
k:=1;
rez:=0;
while c>0 do
 begin
   c:=c-1;
   if a[c]=a[c+1] then inc(k)
  else
     begin
      if k>=3 then
        begin
        for i:=c+1 to n-k+1 do
        a[i]:=a[i+k];
        n:=n-k;
        rez:=rez+k;
        c:=n;
        end;
     k:=1;
    end;
end;
writeln(rez);
end.
0
IceCortez
25 / 25 / 19
Регистрация: 25.03.2014
Сообщений: 233
06.12.2014, 19:54  [ТС] #4
В решении обязательно должен использоваться стек

Добавлено через 7 часов 4 минуты
Up.
0
06.12.2014, 19:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2014, 19:54
Привет! Вот еще темы с ответами:

Завод производит шарики для подшипников. Бракуются шарики, диаметр которых отличается от стандарта на 0,1 мм. Найти дисп - Теория вероятностей
Завод производит шарики для подшипников. Бракуются шарики, диаметр которых отличается от стандарта на 0,1 мм. Найти дисперсию нормального...

шарики - Дискретная математика
в коробке шарики: 1)если шар светлый,то он может быть маленьким тогда и только тогда,когда оставшиеся 2 шара темные. 2)все 3 шарика...

Шарики - C++
В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется непрерывная цепочка из трех и более шариков...

Шарики - Delphi
Привет всем) При первом нажатии шарик становится красным, как сделать что бы при втором нажатии на него он становился черным и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru