File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ #include < iostream>
2+ using namespace std ;
3+
4+ void calculate_span (int * inputArrayPtr, int inputArraySize, int * outputArrayPtr) {
5+ outputArrayPtr[0 ] = 1 ;
6+ int i, counter;
7+ for (i = 1 ; i < inputArraySize; i++) {
8+ counter = 1 ;
9+ while ((i - counter) >= 0 && inputArrayPtr[i] >= inputArrayPtr[i - counter])
10+ counter += outputArrayPtr[i - counter];
11+ outputArrayPtr[i] = counter;
12+ }
13+ }
14+
15+ void get_input (int ** inputPtr, int * inputSize) {
16+ cout << " What is the size of the input array? " ;
17+ cin >> *inputSize;
18+ *inputPtr = (int *) malloc (*inputSize);
19+ int i;
20+ for (i = 0 ; i < *inputSize; i++) {
21+ cout << " Index " << i << " value: " ;
22+ cin >> (*inputPtr)[i];
23+ }
24+ }
25+
26+ void print_output (int * outputPtr, int outputSize) {
27+ int i;
28+ cout << " [" ;
29+ for (i = 0 ; i < outputSize - 1 ; i++)
30+ cout << outputPtr[i] << " ," ;
31+ cout << outputPtr[outputSize - 1 ] << " ]" << endl;
32+ }
33+
34+ int main () {
35+ int * inputPtr;
36+ int inputSize;
37+ int * outputPtr;
38+ get_input (&inputPtr, &inputSize);
39+ calculate_span (inputPtr, inputSize, outputPtr);
40+ print_output (outputPtr, inputSize);
41+ }
42+
You can’t perform that action at this time.
0 commit comments