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

Расчет краски на лабиринт - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание нескольких стеков http://www.cyberforum.ru/cpp-beginners/thread342698.html
//--------------------------------------------------------------------------- #pragma hdrstop #include <tchar.h> #include <stdlib.h> #include <iostream.h> #include <dos.h> //--------------------------------------------------------------------------- namespace Stack
C++ Сохранение матриц больших размеров в типизированный файл Проблема: есть большой двумерный массив (double). Пытаюсь сохранить его в типизированный файл (а затем считать в другой массив). В файл сохраняется только некоторая часть (до 58 элемента, в частном случае), на оставшиеся места записываются максимальное и минимальное значения double (+-6.2 * 10^66). Причем иногда прерывается посередине строки. Как будто память под строку выделилась не в одном... http://www.cyberforum.ru/cpp-beginners/thread342662.html
два ++ C++
Что означает "++" что ето за операция в С++Builder очень надо узнать Напишите кто нибудь.
C++ Тетрис и многопоточность
Здравствуйте. Взялся я за тетрис, немного написал, а потом понял, что мне нужны два потока. Вот зачем: у меня игровое поле — двумерный массив . Фигура представленна массивом . В то время, как один поток будет опускать фигуры вниз, второй поток должен крутить эту же фигуру независимо от шажков спуска. Как это реализовать? Я честно гуглил, но конкретных примеров многопоточности в C++ не...
C++ Подскажите, как должно выглядеть это задание? http://www.cyberforum.ru/cpp-beginners/thread342624.html
Разработайте приложение rle.exe, выполняющее RLE-компрессию бинарных файлов с сильно разреженным содержимым, а также декомпрессию упакованных ею файлов. Необходимо реализовать следующий принцип компрессии файла: При обнаружении последовательности одинаковых байтов, она кодируется при помощи двух байтов. Первый байт хранит количество повторов следующего за ним байтов. Например, последовательность...
C++ string народ я вот решаю задачу .. вводишь в файл input.txt латинскую букву...а в файл output.txt выводить должно справа стоящую на клавиатури букву. вот код: #include <fstream> #include <string> using namespace std; main () { подробнее

Показать сообщение отдельно
dmital
 Аватар для dmital
1 / 1 / 0
Регистрация: 18.02.2011
Сообщений: 20
17.08.2011, 12:31     Расчет краски на лабиринт
Условие задачи тут

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
#include <iostream>
using namespace std;
void paint(int i, int j) {
 if (a[i][j]=='.') {
a[i][j]='$';
paint(i+1,j);
paint(i-1,j);
paint(i,j+1);
paint(i,j-1);
}
}
int nhood(int s, int n, int m) {
if (a[n+1][m]=='#') s++;
if (a[n-1][m]=='#') s++;
if (a[n][m+1]=='#') s++;
if (a[n][m-1]=='#') s++;
return s;
}
int main() {
int n,i,j,s=0;
cin>>n;
char a[n+2][n+2];
for (i=0;i<=n+1; i++)
 for (j=0; j<=n+1; j++)
  a[i][j]='#';
for (i=1; i<=n; i++) 
 for (j=1; j<=n; j++)
 cin>>a[i][j];
paint(1,1);
paint(n,n);
for(i=1; i<=n; i++)
 for(j=1; j<=n; j++)
   if (a[i][j]=='$')
     nhood(s,i,j);
cout<<s*9-4;
    
return 0;
}
Сначала заполняю массив размера n+2*n+2 препятствиями, потом записываю в него входные данные. После этого нахожу 4-связные области с помощью функции paint, применяя ее к первой и последней клеткам. Когда области найдены, нахожу количество стен, которые нужно покрасить, для этого нахожу все пары область-стена. При выводе умножаю количество стен на 9 и вычитаю 4, как и требуется в задаче.

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