Форум программистов, компьютерный форум CyberForum.ru

Жадный алгоритм нахождения абсолютной разницы чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ String и кириллица. Вставка переноса строки после n-ного символа http://www.cyberforum.ru/cpp-beginners/thread1523178.html
Добрый вечер, появилась задачи форматирования строки вывода по ширине (консольная игра с псевдографикой). Есть такой код int width=0; void CyrLength(string st) { for (int i=0; i<(int)st.length(); i++){ if(width<28){ cout<<st.at(i); width++;
C++ Вывод массива чисел из подпрограммы в основную программу Есть такого рода программа, необходимо массив c вывести в основную программу main(). В приведенной ниже программе, сама подпрограмма, в цикле, выводит числа на экран. #include <iostream> using namespace std; //функция перевода из десятичной в двоичную систему void dec2bin(int a) { int b; int c; int i; for (i = 0; i < 6; i++) { http://www.cyberforum.ru/cpp-beginners/thread1523168.html
C++ Изменение глубины цвета изображения
сам изучаю C#, но в C# нет такой возможности с *.bmp. Мне нужно изменить глубину цвета *.bmp изображения. Возможно вы можете такое провернуть на C++, если да, то на в ходе будет указан путь к *.bmp изображению с глубиной цвета равной 24, а программа должно будет преобразовать в 8 глубину цвета и сохранить изображение в том же формате, в тот же файл и затем закрыться. Заранее спасибо!
C++ Хочу понять архитектуру C++
Ребят, всем привет.Хочу разобраться в плюсах. Я java-шник. Я знаю что есть JDK (всё что нужно для разработчика), который содержит стандартную библиотеку java, компилятор javac, и среду для запуска приложений jre(виртуальная машина). Я хочу понять архитектуру C++. Я знаком с компиляторам ogg. Понятное дело что компилятор интерпритирует в машинный язык код, но мой код(который я в...
C++ Проверить пароль при запуске программы http://www.cyberforum.ru/cpp-beginners/thread1523111.html
нужно написать программу на C++ Нужно что бы при запуске программы она просила вести пароль и если он веден правильно, просил сохранить новый пароль и после этого выдавал слово пароль принят и запускал картинку допустим формата .jpg и при повторном запуске уже программы просил новый пароль, пароль должен лежать отдельным файлом формата .txt Желательно в теме писать весть код программы от...
C++ Ввод данных с файла struct mec { string name; double sum; }; cout << "Число меценатов с файла: "; int n; ifstream ReadOn; ReadOn.open("lalka.txt"); ReadOn >> n; cout << n << endl; подробнее

Показать сообщение отдельно
skeivoker
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 10

Жадный алгоритм нахождения абсолютной разницы чисел - C++

01.09.2015, 19:36. Просмотров 464. Ответов 4
Метки (Все метки)

Вот мое задание:

A. Дело о нулях и единицах
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Андроид Андреид — известный на всю галактику детектив. В свободное от работы время он размышляет о строках из нулей и единиц.

Как-то раз ему в голову пришла строка длины n, состоящая из нулей и единиц. Рассмотрим следующую операцию — мы выбираем любые две соседние позиции в строке, и если в одной из них ноль, а в другой — единица, то разрешается удалить обе эти цифры, в результате чего строка строка становится длины n - 2.

Андреид задумался — какой минимальной длины строка может остаться, если примененить описанную операции некоторое (возможно, нулевое) количество раз?
Входные данные

В первой строке входных данных задано целое число n (1 ≤ n ≤ 2·105) — длина строки, которая пришла в голову Андреиду.

Во второй строке записана строка длины n, состоящая из нулей и единиц.
Выходные данные

Выведите единственное целое число — минимальное возможное значение длины строки, которая останется после применения операций, описанных в условии задачи.
А вот мой код:
Кликните здесь для просмотра всего текста
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
#include <cstdlib>
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int x = 0;
 
zadanie(int* mass1, int n, int one, int two)
{
    if(two<n)
    {
        if(mass1[one]!=mass1[two])
        {
            for(int i=one; i<n; i++)
            {
                mass1[i] = mass1[i+2];
            }
            n = n-2;
            if(n==1)
            {
                return x=1;
            }
            if(n==0)
            {
                return x=0;
            }
            if(one>0)
            {
                zadanie(mass1, n, one-1, two-1);
            }
            else
            {
                zadanie(mass1, n, one, two);
            }
        }
        else
        {
            if(n>2)
            {
                x++;
                zadanie(mass1, n, one+1, two+1);
            }
            else
            {
                return x=2;
            }
        }
    }
    return 0;
}
 
int main() 
{
    int n;
    cin>> n;
    char s[n];
    cin>> s;
    int* mass1 = new int[n];
    for(int i=0; i<n; i++)
        mass1[i]=s[i]-'0';
    if(n>1)
    {
        zadanie(mass1, n, 0, 1);
        cout<< x;
    }
    else
    {
        cout<< 1;
    }
    delete []mass1;
    return 0;
}

Неправильный ответ в 11 тесте. Помогите исправить программу и сделать ее полностью рабочей.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru