 # HACKER EARTH off Campus Coding Question

School Renovation: Alice and Bob want to renovate and old school in his city. There are N classrooms in a school and ith classroom have a capacity of A[i] students. Bob is a builder and follows the instruction of alice.

Alice gives Q instructions of the following type

• 1L: Move L classrooms Left
• 2R: Move R classrooms Right
• 3XY: Remove the next classroom and add new classrooms of capacity X and Y respectively to the right of the current classroom.(after performing this operation classroom number changes accordingly).

Note: The queries are always valid

Initially Bob is in ith classroom after performing all instructions of alice, print the capacity of all classroom from 1 to total classrooms.

Examples:

Assumptions:

N=5 , Q=2

A={1,2,3,4,5}

queries={{2,3},{3,2,6}}

Initially, class_no=1

Approach:

• Alice instructs him to go right by 3 classrooms so class_no=(1+3)=4
• Now he has to remove the next classroom so new A will be {1,2,3,4} and he has to add two classrooms with capacites of 2 and 6 so the new A will be {1,2,3,4,2,6} and class_no=4.

Input Format:

• The first line contains two space seperated integers N,Q denoting the initial number of classrooms and the number of instructions.
• The second line contains N space separated integers denoting initial classroom capacity .
• Next Q lines contain queries of the form
1. 1L
2. 2R
3. 3XY

Output Format:

After performing all instructions of alice, print the capacity of all classrooms from 1 to k (k- total number of the classroom in renovated classroom).

Example2:

N=5 , Q=4

A={1,2,3,4,5}

queries={{2,3},{3,1,1,},{1,2},{3,5,7}}

Output:

1,2,5,7,4,1,1

## Algorithm to Solve:

• Initially take every input from user like values of N,Q,A,queries
• Then convert array A to “ArrayList” type (as we need to grow arraylist size in future).
• Then use 2 outer for loops for iterating through elements of 2D array.
• Inside for loops have 3 if conditions each for 1 , 2, 3.
• Then according perform the tasks as mentioned in problem like if initial number in query is 1 then move class_no pointer towards left by specified positions.
• Similarly do same thing for other queries as well.
• At the end if first element in query is 3 then remove the next element of class_no pointer and add two elements in that position.
• Finally print an array of elements representing final capacity of classrooms.

JAVA Code

```package arrayproblems;
import java.util.ArrayList;
class Problem22 {
public static void main(String[] args) {

// written by VRASHIKESH PATL

int N=5;
int Q=4;
int[] array1= {1,2,3,4,5};
int[][] array2= {{2,3},{3,1,1},{1,2},{3,5,7}};
int class_no=1;

ArrayList array3=new ArrayList();

for(int i=0;i<array1.length;i++) {

}

for(int i=0;i<array2.length;i++) {

for(int j=0;j<array2[i].length;j++) {

if(array2[i][j]==1) {
class_no=class_no-array2[i][j+1];
break;
}
else if(array2[i][j]==2) {
class_no=class_no+array2[i][j+1];
break;
}
else if(array2[i][j]==3) {
array3.remove(class_no);

break;
}

}

}
for(int i=0;i<array3.size();i++) {
System.out.print(array3.get(i)+" ");
}
}
}
```

Watch Step by Step Explanation for Above Code

Similar off campus coding questions

SHL off campus coding questions

Count Buildings Hacker Earth coding question with solution

Maximum Work Hacker Earth Problem solved

Rotate Array Elements towards Right Side