Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ram2303
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 1
1

Подскажите, пожалуйста, как можно оптимизировать код

28.10.2013, 17:32. Просмотров 677. Ответов 0
Метки нет (Все метки)

Здравствуйте, уже второй день мучаюсь с одной программой. Сегодня получилось ее дописать, но сайт не принимает, ссылаясь на превышение максимального времени работы. Помогите, пожалуйста, оптимизировать мой код. Программирую
всего второй месяц, пытался сам поколдовать над кодом, но все никак не выходит...

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

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

Формат входного файла

Даны количество шариков в цепочке (не более 1000) и цвета шариков (от 0 до 9, каждому цвету соответствует свое целое число).

Формат выходного файла

Требуется вывести количество шариков, которое будет уничтожено.

Ограничение по времени, сек - 4
Ограничение по памяти, мегабайт - 64

Примеры
Ввод:
5 1 3 3 3 2
Вывод:
3

Ввод:
10 3 3 2 1 1 1 2 2 3 3
Вывод:
10
Мой код:
C++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <cmath>
 
using namespace std;
 
 
 
int main () {
   int n,i,s,b,w=1,ans=0;
   cin >> n;
 
   int a[n];
 
   for (i=0; i<n; i++) {
 
   cin >> a[i];
 
   }
 
 
 
 
 
                     do {
                   
 
                       s=2;
                       
 
   for (i=1; i<n-w; i++) {
 
   
   if (a[i]==a[i-1] && a[i]==a[i+1] && s==2) {b=i-1;}
   if (a[i]==a[i-1] && a[i]==a[i+1]) {s=s+1;}
  
   else if (s>2) {break;}
 
   }  
 
 
 
   if (s!=2) {
 
   for (i=b; i<b+s; i++) {
 
   a[i]=-1;
 
   }
 
 
 
   for (i=0; i<n-s; i++) {
 
 
   if (a[i]==-1) { swap (a[i],a[i+s]);}
 
 
   }
 
 
                 }
             
 
 
           if (s!=2) {w=s+1; ans=ans+s;}
                  
           
            } while (s!=2);
                   
                   
 
 
   cout << ans;      
     
 
return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2013, 17:32
Ответы с готовыми решениями:

Как можно оптимизировать код?
#include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; using namespace std; int main() {...

Как можно оптимизировать данный код?
И... Ещё один вопрос: Дан участок кода С++: #include &lt;iostream&gt; #include &quot;Windows.h&quot; ...

Можно как-то оптимизировать этот код?
#include &lt;iostream&gt; using namespace std; int main() { unsigned int num, trueNum, a, howMany,...

Наследование классов как можно оптимизировать код и условие
Создал два класса родительский монстр и наследный демон. у демона появляется значение разум и...

Определить, что делает код, и как его можно оптимизировать
не могу понять что делает код . как его можно максимально сократить? #include &lt;iostream&gt; #include...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2013, 17:32

Как можно еще оптимизировать код?
Как еще можно оптимизировать данный код? Если вкратце, то он выводит значение АВ, если ключ = вводу...

Код потребляет очень много памяти. Подскажите как оптимизировать?
Есть код на C++ (компилируется под GCC) - подсчёт коэффициентов осцилляторной системы методом...

Вот код, подскажите как исправить ошибку, пожалуйста???
Вот вибивает такие ошибки: 1&gt;c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3::...


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

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

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