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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AHDREY
2 / 2 / 1
Регистрация: 03.11.2013
Сообщений: 20
#1

Рекурсия - C++

26.01.2014, 15:34. Просмотров 204. Ответов 1
Метки нет (Все метки)

Есть задача, написал решение но ответ неправильный.
Задача:
Кликните здесь для просмотра всего текста

Решение:
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
int a[15][15], n, m, t, k, x, y, i, j;
void p(int i, int j)
{
    if(i < 0 || j < 0 || i == n || j == m) return;
        if(a[i][j] == 0) return;
    a[i][j] = 0;
    p(i+1, j);
    p(i-1, j);
    p(i, j-1);
    p(i, j+1);
}
int main()
{
    cin >> m;
    cin >> k;
    for(i = 0; i < k; i++)
        for(j = 0; j < m; j++)
            a[i][j] = 0;
    cin >> n;
    for(i = 0; i < n; i++){
        cin >> x >> y;
        a[x][y] = 1;}
    for(i = 0; i < k; i++)
        for(j = 0; j < m; j++)
            if(a[i][j] == 1) 
            {t++;
            p(i, j);}
    cout << n * m - t << endl;
    system("PAUSE");
    return 0;
}

Помогите пожалуйста исправить ошибки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2014, 15:34     Рекурсия
Посмотрите здесь:

Рекурсия C++
Рекурсия C++
C++ Рекурсия
Рекурсия C++
Рекурсия C++
Рекурсия C++
Рекурсия C++
C++ Рекурсия
Рекурсия C++
рекурсия C++
рекурсия C++
C++ Рекурсия

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.01.2014, 17:17     Рекурсия #2
Вы неправильно поняли условие задачи. Нужно узнать площадь наибольшего поля из участков. В приведенном тесте получается два поля: первое - это точка 1,2. Второе поле - это все остальное (кроме трех заштрихованных квадратов и поля 1,2).
Три заштрихованных поля отделили точку 1,2 от остальной части поля, поэтому получилось два участка. Участок с максимальной площадью - 96. Поэтому для приведенного теста такой ответ.
Yandex
Объявления
26.01.2014, 17:17     Рекурсия
Ответ Создать тему
Опции темы

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