mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2024-12-08 00:45:29 +01:00
58 lines
1.4 KiB
Markdown
58 lines
1.4 KiB
Markdown
# offset-arrays
|
|
|
|
Created by [@theoludwig](https://github.com/theoludwig) on 29 June 2021.
|
|
|
|
## Instructions
|
|
|
|
### Goal
|
|
|
|
To settle the debate of 0-based vs 1-based indexing I have created a language where you must explicitly state the range of indices an array should have.
|
|
|
|
For example, given an array definition "A[-1..1] = 1 2 3", you would have:
|
|
|
|
- A[-1] = 1
|
|
- A[0] = 2
|
|
- A[1] = 3
|
|
|
|
You are given a list of `n` array definitions and your job is to figure out what number is found in a given index `i` of an array `arr`. Note that the indexing operations may be nested (in the above example, A[A[-1]] would produce result 3).
|
|
|
|
### Input
|
|
|
|
- **Line 1:** An integer `n` for the number of array assignments
|
|
- **`n` next lines:** One array assignment per line: `array_identifier` [ `first_index` .. `last_index` ] = `last_index - first_index + 1` integers separated by space
|
|
- **Line `n+2`:** Element to print: `arr` [ `i` ]
|
|
|
|
### Constraints
|
|
|
|
- $$1 \leq n \leq 100$$
|
|
- Array names consist only of uppercase letters A to Z.
|
|
- Array lengths are between 1 and 100 (no empty arrays).
|
|
- Indexing operations have at most 50 levels of nesting.
|
|
- Indices are always within bounds in the test cases.
|
|
|
|
## Source
|
|
|
|
[CodinGame](https://www.codingame.com/ide/puzzle/offset-arrays)
|
|
|
|
## Examples
|
|
|
|
See the `test` folder for examples of input/output.
|
|
|
|
### Example 1
|
|
|
|
#### Input
|
|
|
|
```txt
|
|
3
|
|
A[-1..1] = 1 2 3
|
|
B[3..7] = 3 4 5 6 7
|
|
C[-2..1] = 1 2 3 4
|
|
A[0]
|
|
```
|
|
|
|
#### Output
|
|
|
|
```txt
|
|
2
|
|
```
|