Advertisement
damch

skra

Apr 11th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. class Patnik{
  7. private:
  8. char ime[100];
  9. int klasa;
  10. bool velosiped;
  11. public:
  12. Patnik(char *ime="",int klasa=1,bool velosiped=true){
  13. strcpy(this->ime,ime);
  14. this->klasa=klasa;
  15. this->velosiped=velosiped;
  16. }
  17.  
  18. void pecati(){
  19. if(velosiped){
  20. cout<<ime<<endl;
  21. cout<<klasa<<endl;
  22. cout<<"1"<<endl;
  23. cout<<endl;
  24. }
  25. else{
  26. cout<<ime<<endl;
  27. cout<<klasa<<endl;
  28. cout<<"0"<<endl;
  29. cout<<endl;
  30. }
  31. }
  32. friend class Voz;
  33. };
  34.  
  35. class Voz{
  36. private:
  37. char kd[100];
  38. Patnik *patnici;
  39. int brpatnici;
  40. int maxv;
  41. public:
  42. Voz(char *kd,int maxv=0,int brpatnici=0){
  43. strcpy(this->kd,kd);
  44. this->maxv=maxv;
  45. this->brpatnici=brpatnici;
  46. this->patnici=new Patnik[brpatnici];
  47. }
  48. ~Voz(){
  49. delete [] patnici;
  50. }
  51. Voz(const Voz & p1){
  52. strcpy(this->kd,p1.kd);
  53. this->maxv=p1.maxv;
  54. this->brpatnici=p1.brpatnici;
  55. this->patnici=new Patnik[p1.brpatnici];
  56. for(int i=0;i<p1.brpatnici;i++)
  57. patnici[i]=p1.patnici[i];
  58. }
  59. Voz& operator=(const Voz & p1){
  60. if(this!=&p1){
  61. strcpy(this->kd,p1.kd);
  62. this->maxv=p1.maxv;
  63. this->brpatnici=p1.brpatnici;
  64. delete [] patnici;
  65. this->patnici=new Patnik[p1.brpatnici];
  66. for(int i=0;i<p1.brpatnici;i++)
  67. patnici[i]=p1.patnici[i];
  68. }
  69. return *this;
  70. }
  71.  
  72. void pecati(){
  73. cout<<kd<<endl;
  74. for(int i=0;i<brpatnici;i++)
  75. patnici[i].pecati();
  76. }
  77.  
  78. Voz& dodadiPatnik(Patnik p1){
  79. if(p1.velosiped){
  80. int vkvel=0;
  81. for(int i=0;i<brpatnici;i++){
  82. if(patnici[i].velosiped)
  83. vkvel++;
  84. }
  85. if(vkvel<maxv){
  86. Patnik *tmp = new Patnik[brpatnici+1];
  87. for(int i=0;i<brpatnici;i++)
  88. {
  89. tmp[i]=patnici[i];
  90. }
  91. tmp[brpatnici]=p1;
  92. brpatnici++;
  93. delete [] patnici;
  94. patnici=tmp;
  95.  
  96. }
  97. return *this;
  98.  
  99. }
  100. else
  101. {
  102.  
  103. Patnik *tmp = new Patnik[brpatnici+1];
  104. for(int i=0;i<brpatnici;i++)
  105. {
  106. tmp[i]=patnici[i];
  107. }
  108. tmp[brpatnici]=p1;
  109. brpatnici++;
  110. delete [] patnici;
  111. patnici=tmp;
  112.  
  113. }
  114. return *this;
  115. }
  116.  
  117. void patniciNemaMesto(){
  118.  
  119. int prva=0;
  120. int vtora=0;
  121. int treta=0;
  122. int c0;
  123. bool c1;
  124. for(int i=0; i<brpatnici; i++)
  125. {
  126. c0=patnici[i].klasa;
  127. c1 =patnici[i].velosiped;
  128. if(c1&&c0==1)prva++;
  129. else if(c1&&c0==2)vtora++;
  130. else treta++;
  131. }
  132.  
  133. if(maxv==0){
  134. cout<<"Brojot na patnici od 1-va klasa koi ostanale bez mesto e: 0\n";
  135. cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: 0\n";
  136. }
  137. else{
  138. if(maxv>=prva)
  139. cout<<"Brojot na patnici od 1-va klasa koi ostanale bez mesto e: 0\n";
  140. else
  141. cout<<"Brojot na patnici od 1-va klasa koi ostanale bez mesto e: "<<prva-maxv<<"\n";
  142. maxv-=prva;
  143.  
  144. if(maxv>0)
  145. if(maxv>=vtora)
  146. cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: 0\n";
  147. else
  148. cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: "<<vtora-maxv<<"\n";
  149. else
  150. cout<<"Brojot na patnici od 2-ra klasa koi ostanale bez mesto e: "<<vtora<<"\n";
  151. }
  152.  
  153. }
  154. };
  155.  
  156. int main()
  157. {
  158. Patnik p;
  159. char ime[100], destinacija[100];
  160. int n;
  161. bool velosiped;
  162. int klasa;
  163. int maxv;
  164. cin >> destinacija >> maxv;
  165. cin >> n;
  166. Voz v(destinacija, maxv);
  167. //cout<<v<<endl;
  168. for (int i = 0; i < n; i++){
  169. cin >> ime >> klasa >> velosiped;
  170. Patnik p(ime, klasa, velosiped);
  171. //cout<<p<<endl;
  172. v.dodadiPatnik(p);
  173. }
  174. v.pecati();
  175. v.patniciNemaMesto();
  176.  
  177. return 0;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement