blob: 5df4d015f3c901656cfe3f00ab4ce017d39a8e54 (
plain) (
blame)
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
|
#include <iostream>
using namespace std;
bool checkIfPathExists(const int* field, bool* visited, int len, int pos)
{
if (pos < 0 || pos >= len || visited[pos]) //out of bounds
return false;
if (pos == len - 1)
return true;
visited[pos] = true;
int value = field[pos];
return checkIfPathExists(field, visited, len, pos - value) || checkIfPathExists(field, visited, len, pos + value);
}
int main()
{
int n;
cin >> n; //големината на масива.
int* field = new int[n];
bool* visited = new bool[n];
for (int i = 0; i < n; i++)
{
cin >> field[i];
visited[i] = false;
}
cout << checkIfPathExists(field, visited, n, 0);
delete[] field, visited;
}
|