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

игра (с++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Числовой массив http://www.cyberforum.ru/cpp-beginners/thread201399.html
Задан числовой массив, состоящий из n элементов (n<=100). Определить есть ли среди последних 5 элементов только один четный положительный.
C++ Количество дней от одной даты до другой Здравствуйте. Подскажите пожалуйста как найти количество дней от одной даты до другой? http://www.cyberforum.ru/cpp-beginners/thread201387.html
C++ Учебники С++ для начинающего программиста
Здравствуйте,подскажите где можно скачать Учебники С++ для начинающего программиста,где всё достоверно написано что да как делать?
C++ Шаблоны функции
Помогите решить срочняк:umnik: S=(exp(y)*exp(x))+sqrt(x)
C++ Одномерный массив! http://www.cyberforum.ru/cpp-beginners/thread201319.html
Найти максимальный элемент с реди положительных одномерного масива и минимальный среди отрицательных чисел. к примеру будет: Чисел 10 будет в программе!!!
C++ расчет по двум формулам Программа для расчета по двум формулам. Предварительно подготовить тестовые примеры по второй формуле с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй) ... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
01.12.2010, 21:47
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
//////////////////////////////////////////////////////////////////////////////////////
//Нужно составить игру про шарики. Если в линии встречаются 3 или больше одинаковых 
//цветов шарико, то нужно этот ряд шаров удалить. Задача состоит в том что бы посчитать 
//сколько шариков удалилось. Цвета шариков это номера от 1 до 9. Тест такой:
//
//ввод1:
//5
//1 3 3 3 2
//вывод1:
//3
//
//ввод2:
//10
//3 3 2 1 1 1 2 2 3 3
//вывод2:
//10
//////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <stack>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string               T_balls_line;
typedef std::stack<T_balls_line>  T_balls_lines_stack;
//////////////////////////////////////////////////////////////////////////////////////
int  balls_removed_count(T_balls_line  ball_line)
{    
    int                  removed_balls_counter = 0;
    T_balls_lines_stack  balls_lines_stack;
    for(;;)
    {
        //Если начинается новый цвет при непустом стеке, и есть что удалить:
        if(!balls_lines_stack.empty()
            && (ball_line.empty()
                || *balls_lines_stack.top().begin() != *ball_line.begin())
            && balls_lines_stack.top().size() >= 3)
        {
            removed_balls_counter += balls_lines_stack.top().size();
            balls_lines_stack.pop();
        }
        if(ball_line.empty()) break;
        //Если стек пуст или вставляемый цвет не совпадает с тем, что в стеке:
        if(   balls_lines_stack.empty()
           || *balls_lines_stack.top().begin() != *ball_line.begin())
        {
            balls_lines_stack.push(T_balls_line(1, *ball_line.begin()));            
        }
        //Если вставляется тот же цвет, что и в стеке:
        else
        {
            balls_lines_stack.top().push_back(*ball_line.begin());
        }
        ball_line.erase(ball_line.begin());        
    }
    return  removed_balls_counter;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите строку символов. "
              << std::endl
              << "Три символа, идущих подряд, удаляются на каждой итерации."
              << std::endl;
 
    T_balls_line  balls_line;
    std::cin >> balls_line;
    std::cout << "Удалено "
              <<  balls_removed_count(balls_line)
              << " символов."
              << std::endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.