Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <set>
  6. using namespace std;
  7. int n, i ,a ,b ,c ,f ,t ,y;
  8. long long x;
  9. char str[20];
  10. class Student
  11. {
  12. public:
  13. const string& getName() const { return name; }
  14. const string& getSname() const { return sname; }
  15. const string& getDate() const { return date; }
  16. long long getMn() const { return mn; }
  17. char getMl() const { return ml; }
  18. void setName(const string& str) { name = str; }
  19. void setSname(const string& str) { sname = str; }
  20. void setDate(const string& str) { date = str; }
  21. void setMn(long long value) { mn = value; }
  22. void setMl(char value) { ml = value; }
  23. private:
  24. string name,sname,date;
  25. long long mn = 0;
  26. char ml;
  27. };
  28. bool cmp(const Student& x, const Student& y)
  29. {
  30. int i=0;
  31. if (x.getMn() != y.getMn()) return x.getMn() < y.getMn();
  32. if (x.getMl() != y.getMl()) return x.getMl() < y.getMl();
  33. while(x.getSname()==y.getSname())
  34. i++;
  35. return(x.getSname()<y.getSname());
  36. }
  37. istream& operator>> (istream& src, Student& dest)
  38. {
  39. string s_name,s_sname,s_date;
  40. long long s_mn = 0;
  41. char s_ml=0;
  42. src >> s_name>> s_sname >> s_date>>s_mn>>s_ml;
  43. dest.setName(s_name);
  44. dest.setSname(s_sname);
  45. dest.setDate(s_date);
  46. dest.setMn(s_mn);
  47. dest.setMl(s_ml);
  48. return src;
  49. }
  50.  
  51. ostream& operator<< (ostream& dest, const Student& src)
  52. {
  53. dest << src.getName() << src.getSname() << src.getDate()<<src.getMn()<<src.getMl();
  54. return dest;
  55. }
  56. Student create()
  57. {
  58. Student res;
  59. cin >> res;
  60. return res;
  61. }
  62.  
  63. int main()
  64. {
  65. cin>>n;
  66. set<Student,cmp> myset;
  67. for(i=0;i<=n-1;i++)
  68. {
  69.  
  70. cin>>str;
  71. myset.insert(create());
  72. int j=0;
  73. a=0;
  74. while(str[j]>='0' && str[j]<='9')
  75. {
  76. a++;
  77. j++;
  78. }
  79. x=0;
  80. for(int j=0;j<=a-1;j++)
  81. x=x*10+int(str[j])-int('0');
  82. myset.getMn()=x;
  83. myset.getMl()=str[a];
  84. }
  85. for (const auto& each : myset)
  86. {
  87. cout << each << endl;
  88. }
  89. return 0 ;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement