#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct Student
{
string ID;
string name;
double grade;
};
int main() {
//ifstream inFile;
istream &inFile = cin;
Student students[100];
int counter = 0;
string line, netID, studentName;
double grade1, grade2, grade3;
//inFile.open("Asg3Grades.txt"); //opens the file
while (getline(inFile, line)) {
istringstream iss(line);
if (iss >> netID >> studentName >> grade1 >> grade2 >> grade3) {
double average = (grade1 + grade2 + grade3) / 3;
students[counter].ID = netID;
students[counter].name = studentName;
students[counter].grade = average;
if (++counter == 100) break;
}
}
//inFile.close(); //closes the file
Student *dynamicStudents = new Student[counter];
for (int i = 0; i < counter; i++) {
dynamicStudents[i] = students[i];
}
for (int i = 0; i < counter; i++) {
cout << dynamicStudents[i].ID << ": " << dynamicStudents[i].name << " " << dynamicStudents[i].grade << endl;
}
delete[] dynamicStudents;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBTdHVkZW50CnsKCXN0cmluZyBJRDsKCXN0cmluZyBuYW1lOwoJZG91YmxlIGdyYWRlOwp9OwoKaW50IG1haW4oKSB7CgkvL2lmc3RyZWFtIGluRmlsZTsKCWlzdHJlYW0gJmluRmlsZSA9IGNpbjsKCglTdHVkZW50IHN0dWRlbnRzWzEwMF07CglpbnQgY291bnRlciA9IDA7CgoJc3RyaW5nIGxpbmUsIG5ldElELCBzdHVkZW50TmFtZTsKCWRvdWJsZSBncmFkZTEsIGdyYWRlMiwgZ3JhZGUzOwoKCS8vaW5GaWxlLm9wZW4oIkFzZzNHcmFkZXMudHh0Iik7IC8vb3BlbnMgdGhlIGZpbGUKCgl3aGlsZSAoZ2V0bGluZShpbkZpbGUsIGxpbmUpKSB7CgogICAgCWlzdHJpbmdzdHJlYW0gaXNzKGxpbmUpOwoKICAgIAlpZiAoaXNzID4+IG5ldElEID4+IHN0dWRlbnROYW1lID4+IGdyYWRlMSA+PiBncmFkZTIgPj4gZ3JhZGUzKSB7CgogICAgICAgIAlkb3VibGUgYXZlcmFnZSA9IChncmFkZTEgKyBncmFkZTIgKyBncmFkZTMpIC8gMzsKCiAgICAgICAgCXN0dWRlbnRzW2NvdW50ZXJdLklEID0gbmV0SUQ7CiAgICAgICAgCXN0dWRlbnRzW2NvdW50ZXJdLm5hbWUgPSBzdHVkZW50TmFtZTsKICAgICAgICAJc3R1ZGVudHNbY291bnRlcl0uZ3JhZGUgPSBhdmVyYWdlOwoKICAgICAgICAJaWYgKCsrY291bnRlciA9PSAxMDApIGJyZWFrOwogICAgCX0KCX0KCgkvL2luRmlsZS5jbG9zZSgpOyAvL2Nsb3NlcyB0aGUgZmlsZQoKCVN0dWRlbnQgKmR5bmFtaWNTdHVkZW50cyA9IG5ldyBTdHVkZW50W2NvdW50ZXJdOwoKCWZvciAoaW50IGkgPSAwOyBpIDwgY291bnRlcjsgaSsrKSB7CiAgICAJZHluYW1pY1N0dWRlbnRzW2ldID0gc3R1ZGVudHNbaV07Cgl9CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudGVyOyBpKyspIHsKICAgIAljb3V0IDw8IGR5bmFtaWNTdHVkZW50c1tpXS5JRCA8PCAiOiAiIDw8IGR5bmFtaWNTdHVkZW50c1tpXS5uYW1lIDw8ICIgIiA8PCBkeW5hbWljU3R1ZGVudHNbaV0uZ3JhZGUgPDwgZW5kbDsKCX0KCglkZWxldGVbXSBkeW5hbWljU3R1ZGVudHM7CglyZXR1cm4gMDsKfQ==