blob: b48b5210a06cb0665b41f64c29fdc141e5138f3d (
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
|
#include <iostream>
using namespace std;
bool checkIfContainsFirstNEvenNumbers(const unsigned* arr, bool* visited, int len, int n)
{
if (len == 0)
return true; //all values in visited should be true
int currentNumber = arr[0];
if (currentNumber % 2 != 0 || currentNumber > 2 * n - 2 || visited[currentNumber / 2])
return false;
visited[currentNumber / 2] = true;
return checkIfContainsFirstNEvenNumbers(arr + 1, visited, len - 1, n);
}
int main()
{
int n;
cin >> n;
unsigned* arr = new unsigned[n];
bool* visited = new bool[n];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
visited[i] = false;
}
cout << checkIfContainsFirstNEvenNumbers(arr, visited, n, n);
delete[] arr, visited;
}
|