## Description

Create a class in C++ to represent Students. This class should also support the

functionality to compare two Students based on the given constraints.

The class should have the following attributes.

● ID (Unique for a student)

● Scores in five subjects(No two students will have the same set of scores in all

five subjects).

● Skill value (Unique for a student).

● Any other attributes of your choice.

The condition for comparing arbitrary students A and B is:

● Rank(A) < Rank(B) if M1
(A)>M1

(B)

● Rank(A) < Rank(B) if Mi(A)==Mi(B) and Mi+1
(A)>Mi+1

(B) for i=1 to 4 where

Mi(A) denotes marks of student A in subject i.

Rank is defined as the position of a student in the sorted order using the above

condition. It is indexed from 1.

There can be 5 types of operations:

1. ADD: Add a student.

2. FIND: Find the difference in ranks between two students given their

respective IDs.

3. COUNT: Given a student ID, find the number of students with absolute

difference in skill values more than d. i.e. count(|val_i – val_id| > d) ∀ i.

4. PRINT: Print the current list of student IDs in the order of their ranks.

As and when a new student is added it is expected that all of them are to be in

sorted order i.e. positioning them in their appropriate rank.

You need to choose an appropriate data structure to perform operations efficiently.

Input Format

The operations format are as follows:

1.

2.

3.

4.

Output Format

Output of every query should be printed on a separate line.

1. ADD: nothing to be printed. (no newline as well).

2. FIND: output is an integer.

3. COUNT: output is an integer.

4. PRINT: output is a space separated list of student IDs. Note that there is a trailing space

in the end.

Constraints

Number of ADD operations ≤ 10

5

Number of PRINT operations ≤ 10

2

Number of FIND+COUNT operations ≤ 10

5

Sample Testcase

ADD 1 28 15 72 79 53 880704511

ADD 2 9 27 78 89 81 133736473

ADD 3 94 2 98 99 43 102803388

PRINT

ADD 4 92 61 56 39 96 154547114

ADD 5 19 73 39 13 88 138195161

ADD 6 33 68 17 69 73 749942762

PRINT

FIND 2 3

COUNT 5 7006739

ADD 7 58 64 7 12 3 587319490

ADD 9 96 89 58 43 49 550217891

PRINT

Output

3 1 2

3 4 6 1 5 2

5

4

9 3 4 7 6 1 5 2

Design Submission Format

For the design submission on Moodle, please submit a .tar.gz file named as your roll number.