F001A. Students at the FIPS P81104


pdf   zip


The Poble Sec School of Informatics stores the information of its students and the marks they have obtained in the subjects they have done in this struct:

string name; // Student’s name int idn; // Student’s IDN vector<Subject> subj; // Subject list of the student };

where |Subject| is:

string name; // Subject’s name double mark; // Between 0 and 10, -1 shows NP };

Using these definitions, implement the function

that searches and returns the mark that the student |idn| has obtained at the subject |name|. If the student does not exist, or if he has not done the subject, or his mark is NP, the function must return −1.

You also have to implement the function:

that calculates and returns the average mark of the subjects in the vector |subj|. To calculate the average mark, NP must be ignored. If all the marks are NP or the vector is empty, the mean mark is −1.

Using the previous functions, you must implement:

that counts and sets in the output parameter |counter| the number of students in the vector |stu| that have a average mark greater than the mark that student |idn| has obtained at the subject |name|.


There are not repeated students. In the list of subjects of each student there are not repeated subjects.


The main program is already done; do not modify it. This program reads the student’s data, then prints the result of your |count()| function for each combination student-subject of the input.

(In the instance, the average marks of Helen, Michael, Peter, Alicia, Paul, John and George are respectively 9.5, 8, 0, 5.25, −1, 9.25 and −1. The 2 in the output corresponds to Helen and John. The 1 corresponds to Helen. The 5 correspond to Helen, Michael, Peter, Alicia and John).

Public test cases
  • Input

    Helen_OConnell       12345678  4  P1 9   PHYSICS 9.5   IC 9.5   ALGEBRA 10
    Michael_Martin       77777777  3  ANALYSIS 8   P1 7   IC 9
    Peter_Great_Disaster 55599666  4  P1 0   PHYSICS -1   ALGEBRA 0   IC 0
    Alicia_Nottoo_Bad    55511111  4  XC 5   P1 6.5   PHYSICS 5.5   IL 4
    Paul_No_Registration 55544444  0
    John_Smith           55533333  2  P1 9.25   PHYSICS -1
    George_Calm          66666666  4  P1 -1   PHYSICS -1   IC -1   ALGEBRA -1
    12345678 P1
    55533333 P1
    55533333 PHYSICS
    55533333 PRAP
    11111111 P1


  • Information
    Professorat de P1
    Carlos Molina
    Original language
    Other languages
    Official solutions
    User solutions