fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. struct Pupil {
  6. string SN; // "surname + name"
  7. string marks; // "(mark0, mark1, mark2, ...)"
  8. double avrg;
  9. };
  10.  
  11. int main() {
  12. ios::sync_with_stdio(false); cin.tie(nullptr);
  13.  
  14. unsigned int n, m;
  15. Pupil p1, p2, p3;
  16.  
  17. cin >> n >> m;
  18. for (int i = 0; i < n; i++) {
  19. Pupil pupil;
  20. cin.get();
  21. getline(cin, pupil.SN);
  22.  
  23. double avrg = 0.0;
  24. string marks = " (";
  25.  
  26. for (int j = 0; j < m; j++) {
  27. int mark;
  28. cin >> mark;
  29.  
  30. avrg += mark;
  31. marks += to_string(mark) += " ";
  32. }
  33.  
  34. avrg = avrg / m;
  35.  
  36. pupil.avrg = avrg;
  37.  
  38. marks.pop_back();
  39. marks += ")\n";
  40.  
  41. pupil.marks = marks;
  42.  
  43.  
  44. if (i == 0) {
  45. p1, p2, p3 = pupil;
  46. }
  47. else {
  48. if (p1.avrg < avrg) {
  49. swap(p3, p2);
  50. swap(p2, p1);
  51.  
  52. p1 = pupil;
  53. } else if (p2.avrg < avrg) {
  54. swap(p3, p2);
  55. p2 = pupil;
  56. } else if (p3.avrg < avrg) {
  57. p3 = pupil;
  58. }
  59.  
  60. }
  61. }
  62.  
  63.  
  64. cout << p1.SN << p1.marks << p2.SN << p2.marks << p3.SN << p3.marks;
  65.  
  66.  
  67.  
  68. return 0;
  69. }
Success #stdin #stdout 0s 5312KB
stdin
4 3
Voronov Andrey
4 3 5
Korovina Alexandra
3 3 3
Antipov Anton
5 5 2
Stepanova Irina
3 3 3
stdout
Antipov Anton (5 5 2)
Korovina Alexandra (3 3 3)
Stepanova Irina (3 3 3)