Advertisement
a53

Clasa

a53
Feb 23rd, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("clasa.in");
  4. struct elev
  5. {
  6. string nume,pren;
  7. double media1,media2,media3,mg;
  8. };
  9. elev el[101];
  10. int n,p,nrel,lv;
  11. double mgcls,scls;
  12.  
  13. bool comp(elev i,elev j)
  14. {
  15. if(i.mg>j.mg)
  16. return 1;
  17. else if(i.mg==j.mg)
  18. {
  19. if(i.nume<j.nume)
  20. return 1;
  21. else if(i.nume==j.nume)
  22. {
  23. if(i.pren<j.pren)
  24. return 1;
  25. }
  26. }
  27. return 0;
  28. }
  29.  
  30. int main()
  31. {
  32. string str;
  33. cin>>n>>p;
  34. cin.get();
  35. for(int i=0;i<n;++i)
  36. {
  37. getline(cin,str);
  38. vector<string>x;
  39. istringstream buffer(str);
  40. for(string w;buffer>>w;)
  41. x.push_back(w);
  42. for(unsigned int j=0;j<x.size();++j)
  43. switch(j)
  44. {
  45. case 0: el[lv].nume=x[j];break;
  46. case 1: el[lv].pren=x[j];break;
  47. case 2: el[lv].media1=stod(x[j]);break;
  48. case 3: el[lv].media2=stod(x[j]);break;
  49. case 4: el[lv].media3=stod(x[j]);break;
  50. }
  51. double s=el[i].media1+el[i].media2+el[i].media3;
  52. el[i].mg=s/3.0;
  53. el[i].mg=(el[i].mg*1000.0)/1000.0;
  54. scls=scls+el[i].mg;
  55. ++lv;
  56. }
  57. n=lv;
  58. mgcls=(double)scls/n;
  59. if(p==1)
  60. {
  61. for(int i=0;i<n;++i)
  62. if(el[i].mg>=mgcls)
  63. ++nrel;
  64. cout<<nrel<<'\n';
  65. return 0;
  66. }
  67. cout<<fixed<<setprecision(2)<<mgcls<<'\n';
  68. stable_sort(el,el+n,comp);
  69. for(int i=0;i<n;++i)
  70. cout<<fixed<<setprecision(2)<<el[i].nume<<' '<<el[i].pren<<' '<<el[i].mg<<'\n';
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement