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

Пройти по любому разрешенному пути игрового поля от верхнего левого угла до правого нижнего - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Правильно ли реализована передача указателя на контейнер http://www.cyberforum.ru/cpp-beginners/thread1238574.html
Я сомневаюсь, правильно ли я передаю указатель на контейнер void put (multimap <int, int> *map2) { multimap <int, int> map3 = *map2; map3.erase( map3.begin () ); } int main() { multimap <int, int> mapp;
C++ Бесконечный цикл и EOF в VS 2013 #include "stdafx.h" #include <iostream> #include <stdio.h> #include <math.h> #include <string> #include <cstdlib> #include <vector> using namespace std; int main(void) http://www.cyberforum.ru/cpp-beginners/thread1238544.html
C++ Процедура добавления элемента в список по номеру
беда с указателями задание было написать список, вот код: #include <iostream> #include <string.h> using namespace std; struct list //структура элемента списка
C++ Перегрузка операторов, оператор присваивания
Перегрузка операторов, запутано-намутано #include "stdafx.h" #include "conio.h" #include <iostream> using namespace::std; class sample{ char *s; public:
C++ Элементарный ввод/вывод - ошибка "Cout undeclared" http://www.cyberforum.ru/cpp-beginners/thread1238485.html
списал програму с книги,а выбивает ошибку вот: #include<ioastream> using namespace std; int main() { int x = 5; int y=7; cout << "\n"; cout << x+y << " " <<x*y;
C++ Какая разница между компиляцией и компоновкой? только начал учить C++ и возник такой вопрос подробнее

Показать сообщение отдельно
spirart
2 / 2 / 3
Регистрация: 05.12.2011
Сообщений: 51
Завершенные тесты: 1
05.08.2014, 11:04     Пройти по любому разрешенному пути игрового поля от верхнего левого угла до правого нижнего
Всем привет!
Решаю вот такую простую задачку:

Игровое поле N x M заполняется целыми числами, одно неотрицательное целое число в каждой клетке. Цель игры состоит в том, чтобы пройти по любому разрешенному пути от верхнего левого угла до правого нижнего. Целое число в каждой клетке указывает, какой длины шаг должен быть из текущей клетки. Все шаги могут быть или направо или вниз. Если в результате какого-либо шага игрок покидает пределы поля, такой шаг запрещается.
Требуется написать программу, которая определит число различных вариантов путей от верхнего левого угла до правого нижнего.

Входные данные

Входной файл INPUT.TXT содержит в первой строке размеры поля N (1 ≤ N ≤ 70) и M (1 ≤ M ≤ 70). В последующих N строках входного файла, каждая из которых описывает отдельную строку игрового поля, записаны через пробел по M целых чисел – длины шагов из клеток данной строки.

Выходные данные

Выходной файл OUTPUT.TXT должен содержать одно число - число различных вариантов путей от верхнего левого угла до правого нижнего. Для каждого поля будет менее чем 231 различных путей.
Ссылка на нее: Задача


Вот мой код:

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
int main()
{
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    
    int  n, m;
    scanf("%d %d", &n, &m);
    int** a = new int*[n];
    int** l = new int*[n];
    for (int i = 0; i < n; i++) {
        l[i] = new int[m];
        a[i] = new int[m];
        for (int j = 0; j < m; j++) {
            scanf("%d", &a[i][j]);
            l[i][j] = 0;
        }
    }
 
    l[0][0] = 1;
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            int pos = a[i][j];
 
            if (j+pos < m)
                l[i][j+pos] = l[i][j] + l[i][j+pos];
            if (i+pos < n)
                l[i+pos][j] = l[i][j] + l[i+pos][j];
        }
    }
    printf("%d", l[n-1][m-1]);
    return 0;
}
Моя программа выдает неверный результат, а я не понимаю, почему.
Помогите, пожалуйста, найти ошибку в коде.
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru