a53

RATC2

a53
Oct 26th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream fin("ratc2.in");
  5. ofstream fout("ratc2.out");
  6. struct pasager
  7. {
  8. char pren[51], nume[51];
  9. int bilet;
  10. bool operator < (const pasager& e) const
  11. {
  12. if(bilet != e.bilet)
  13. return bilet > e.bilet;
  14. if(strcmp(pren, e.pren)!=0)
  15. return strcmp(pren, e.pren)<0;
  16. if(strcmp(nume, e.nume)!=0)
  17. return strcmp(nume, e.nume)<0;
  18. return 0;
  19. }
  20. };
  21. pasager v[101], x, xmaxp;
  22. int n, p, lv, maxp;
  23. int main()
  24. {
  25. int i, j, ok;
  26. fin>>n>>p;
  27. if(p==1)
  28. {
  29. for(i=1; i<=n; i++)
  30. {
  31. fin>>x.pren>>x.nume>>x.bilet;
  32. if(x.bilet==0)
  33. {
  34. j=1;ok=0;
  35. while(j<=lv && !ok)
  36. {
  37. if(strcmp(x.pren,v[j].pren)==0 && strcmp(x.nume,v[j].nume)==0)
  38. ok=1, j--;
  39. j++;
  40. }
  41. if(ok)
  42. v[j].bilet++;
  43. else
  44. {
  45. ++lv;
  46. strcpy(v[lv].pren,x.pren);
  47. strcpy(v[lv].nume,x.nume);
  48. v[lv].bilet=1;
  49. }
  50. }
  51. }
  52. for(i=1; i<=lv; i++)
  53. if(v[i].bilet > maxp)
  54. {
  55. maxp=v[i].bilet;
  56. strcpy(xmaxp.pren, v[i].pren);
  57. strcpy(xmaxp.nume, v[i].nume);
  58. xmaxp.bilet=v[i].bilet;
  59. }
  60. else if(v[i].bilet == maxp)
  61. {
  62. if(strcmp(v[i].pren, xmaxp.pren)<0)
  63. {
  64. strcpy(xmaxp.pren, v[i].pren);
  65. strcpy(xmaxp.nume, v[i].nume);
  66. xmaxp.bilet=v[i].bilet;
  67. }
  68. else if(strcmp(v[i].pren, xmaxp.pren)==0)
  69. {
  70. if(strcmp(v[i].nume, xmaxp.nume)<0)
  71. {
  72. strcpy(xmaxp.pren, v[i].pren);
  73. strcpy(xmaxp.nume, v[i].nume);
  74. xmaxp.bilet=v[i].bilet;
  75. }
  76. }
  77. }
  78. fout<<xmaxp.pren<<" "<<xmaxp.nume<<" "<<xmaxp.bilet;
  79. return 0;
  80. }
  81. for(i=1; i<=n; i++)
  82. {
  83. fin>>x.pren>>x.nume>>x.bilet;
  84. j=1;ok=0;
  85. while(j<=lv && !ok)
  86. {
  87. if(strcmp(x.pren,v[j].pren)==0 && strcmp(x.nume,v[j].nume)==0)
  88. ok=1, j--;
  89. j++;
  90. }
  91. if(ok)
  92. {
  93. if(x.bilet==0)
  94. v[j].bilet++;
  95. }
  96. else
  97. {
  98. ++lv;
  99. strcpy(v[lv].pren,x.pren);
  100. strcpy(v[lv].nume,x.nume);
  101. if(x.bilet==0)
  102. v[lv].bilet++;
  103. else
  104. v[lv].bilet=0;
  105. }
  106. }
  107. sort(v+1,v+lv+1);
  108. for(i=1; i<=lv; i++)
  109. fout<<v[i].pren<<" "<<v[i].nume<<" "<<v[i].bilet<<'\n';
  110. return 0;
  111. }
Add Comment
Please, Sign In to add comment