Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct students_result {
- vector <string> name;
- vector <int> marks;
- };
- double average_mark(vector <int>& a) {
- int sum_marks = 0;
- for (auto mark : a) {
- sum_marks += mark;
- }
- return (sum_marks / 3.0);
- }
- bool marks_compare(students_result first_student, students_result second_student) {
- return (average_mark(first_student.marks) > average_mark(second_student.marks));
- }
- void task5() {
- int n;
- cin >> n;
- vector <students_result> students(n);
- for (int i = 0; i < n; i++) {
- students_result current_student;
- for (int i = 0; i < 2; i++) {
- string name;
- cin >> name;
- current_student.name.push_back(name);
- if (i != 1) {
- current_student.name.push_back(" ");
- }
- }
- for (int i = 0; i < 3; i++) {
- int mark;
- cin >> mark;
- current_student.marks.push_back(mark);
- }
- students[i] = current_student;
- }
- stable_sort(students.begin(), students.end(), marks_compare);
- for (auto student : students) {
- for (auto name : student.name) {
- cout << name;
- }
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement