## Hackerrank Variable Sized Arrays Solution

.MathJax_SVG_LineBox {display: table!important} .MathJax_SVG_LineBox span {display: table-cell!important; width: 10000em!important; min-width: 0; max-width: none; padding: 0; border: 0; margin: 0}

Consider an -element array, , where each index in the array contains a reference to an array of integers (where the value of varies from array to array). See the *Explanation* section below for a diagram.

Given , you must answer queries. Each query is in the format `i j`

, where denotes an index in array and denotes an index in the array located at . For each query, find and print the value of element in the array at location on a new line.

Click here to know more about how to create variable sized arrays in C++.

**Input Format**

The first line contains two space-separated integers denoting the respective values of (the number of variable-length arrays) and (the number of queries).

Each line of the subsequent lines contains a space-separated sequence in the format `k a[i]`

describing the -element array located at . _{0} a[i]_{1} … a[i]_{k-1}

Each of the subsequent lines contains two space-separated integers describing the respective values of (an index in array ) and (an index in the array referenced by ) for a query.

**Constraints**.MathJax_SVG_LineBox {display: table!important} .MathJax_SVG_LineBox span {display: table-cell!important; width: 10000em!important; min-width: 0; max-width: none; padding: 0; border: 0; margin: 0}

- All indices in this challenge are zero-based.
- All the given numbers are non negative and are not greater than

**Output Format**

For each pair of and values (i.e., for each query), print a single integer denoting the element located at index of the array referenced by . There should be a total of lines of output.

**Sample Input**

```
2 2
3 1 5 4
5 1 2 8 9 3
0 1
1 3
```

**Sample Output**

```
5
9
```

**Explanation**

The diagram below depicts our assembled Sample Input:

We perform the following queries:

- Find the array located at index , which corresponds to . We must print the value at index of this array which, as you can see, is .
- Find the array located at index , which corresponds to . We must print the value at index of this array which, as you can see, is .

### Solution in cpp

**Approach 1**.

```
int n,q;
cin >> n>> q;
int** seq = new int* [n];
for(int i=0;i<n;i++) {
int a;
cin>>a;
int* b=new int [a];
for(int j=0;j<a;j++) {
int e;
cin>>e;
b[j]=e;
}
*(seq+i)=b;
}
for(int i=0;i<q;i++) {
int r,s;
cin >> r >> s;
cout << seq[r][s] << endl;
}
return 0;
}
```

**Approach 2**.

```
int n, q, k, qs, qi;
cin >> n >> q;
int **seq = new int*[n];
for (int c = 0; c < n; c++) {
cin >> k;
seq[c] = new int[k];
for (int d = 0; d < k; d++) {
cin >> seq[c][d];
}
}
for (int c = 0; c < q; c++) {
cin >> qs >> qi;
cout << seq[qs][qi] << endl;
}
return 0;
}
```

**Approach 3**.

```
int n, q;
cin >> n >> q;
int *mtr[n];
for(int i=0; i<n; i++){
int s;
cin >> s;
mtr[i] = new int[s];
for(int j=0; j<s; j++){
cin>>mtr[i][j];
}
}
for(int i=0; i<q; i++){
int r, c;
cin >> r;
cin >> c;
cout << mtr[r][c]<<endl;
}
return 0;
}
```