Advertisement
masterm1nd99

LCCCCCC

Apr 4th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class List {
  6. private:
  7. int* broevi;
  8. int brBroevi;
  9. public:
  10. List() {
  11. broevi=new int[0];
  12. brBroevi=0;
  13. }
  14. ~List(){
  15. delete[] broevi;
  16. }
  17. List(int* broevi,int brBroevi) {
  18. this->broevi=new int[brBroevi];
  19. for(int i=0; i<brBroevi; i++)
  20. this->broevi[i]=broevi[i];
  21. this->brBroevi=brBroevi;
  22. }
  23. List(const List& l) {
  24. this->brBroevi=l.brBroevi;
  25. this->broevi=new int[l.brBroevi];
  26. for(int i=0; i<l.brBroevi; i++)
  27. this->broevi[i]=l.broevi[i];
  28. }
  29. List& operator=( List& l) {
  30. if(this!=&l) {
  31. delete[]broevi;
  32. brBroevi=l.brBroevi;
  33. broevi=new int[l.brBroevi];
  34. for(int i=0; i<l.brBroevi; i++)
  35. broevi[i]=l.broevi[i];
  36. }
  37. return *this;
  38. }
  39. int sum() {
  40. int suma=0;
  41. for(int i=0; i<brBroevi; i++) {
  42. suma+=broevi[i];
  43. }
  44. return suma;
  45. }
  46. double average() {
  47. return sum()*1.0/brBroevi;
  48. }
  49. void pecati() {
  50. cout<<brBroevi<<": ";
  51. for(int i=0; i<brBroevi; i++) {
  52. cout<<broevi[i]<<" ";
  53. }
  54. cout<<"sum: "<<sum();
  55. cout<<" average: "<<average();
  56. }
  57. int getbrBroevi(){
  58. return brBroevi;
  59. }
  60. };
  61.  
  62. class ListContainer {
  63. private:
  64. List* listi;
  65. int brElementi;
  66. int brObidi;
  67. public:
  68. ListContainer() {
  69. listi=new List[0];
  70. brElementi=0;
  71. brObidi=0;
  72. }
  73. ~ListContainer(){
  74. delete[] listi;
  75. }
  76. ListContainer(const ListContainer& lc) {
  77. this->brObidi=lc.brObidi;
  78. this->brElementi=lc.brElementi;
  79. this->listi=new List[lc.brElementi];
  80. for(int i=0; i<lc.brElementi; i++) {
  81. this->listi[i]=lc.listi[i];
  82. }
  83. }
  84. ListContainer& operator=(ListContainer& lc) {
  85. if(this!=&lc) {
  86. delete[] listi;
  87. brObidi=lc.brObidi;
  88. brElementi=lc.brElementi;
  89. listi=new List[lc.brElementi];
  90. for(int i=0; i<lc.brElementi; i++) {
  91. listi[i]=lc.listi[i];
  92. }
  93. }
  94. return *this;
  95. }
  96. int sum(){
  97. int suma=0;
  98. for(int i=0;i<brElementi;i++){
  99. suma+=listi[i].sum();
  100. }
  101. return suma;
  102. }
  103. double average(){
  104. int suma=sum();
  105. int broevi=0;
  106. for(int i=0;i<brElementi;i++){
  107. broevi+=listi[i].getbrBroevi();
  108. }
  109. return suma/(broevi*1.0);
  110. }
  111. void addNewList(List l){
  112. ++brObidi;
  113. for(int i=0;i<brElementi;i++){
  114. if(l.sum()==listi[i].sum())
  115. return;
  116. }
  117. List* tmp=new List[brElementi+1];
  118. for(int i=0;i<brElementi;i++){
  119. tmp[i]=listi[i];
  120. }
  121. tmp[brElementi++]=l;
  122. delete [] listi;
  123. listi=tmp;
  124. }
  125. void print(){
  126. if(!brElementi){
  127. cout<<"The list is empty"<<endl;
  128. return;
  129. }
  130. else{
  131. for(int i=0;i<brElementi;i++){
  132. cout<<"List number: "<<i+1<<" List info: ";
  133. listi[i].pecati();
  134. cout<<endl;
  135. }
  136. }
  137. cout<<"Sum: "<<sum();
  138. cout<<" Average: "<<average()<<endl;
  139. cout<<"Successful attempts: "<<brElementi<< " Failed attempts: " <<brObidi-brElementi<<endl;
  140. }
  141. };
  142. int main() {
  143.  
  144. ListContainer lc;
  145. int N;
  146. cin>>N;
  147.  
  148. for (int i=0; i<N; i++) {
  149. int n;
  150. int niza[100];
  151.  
  152. cin>>n;
  153.  
  154. for (int j=0; j<n; j++) {
  155. cin>>niza[j];
  156.  
  157. }
  158.  
  159. List l=List(niza,n);
  160.  
  161. lc.addNewList(l);
  162. }
  163.  
  164.  
  165. int testCase;
  166. cin>>testCase;
  167.  
  168. if (testCase==1) {
  169. cout<<"Test case for operator ="<<endl;
  170. ListContainer lc1;
  171. lc1.print();
  172. cout<<lc1.sum()<<" "<<lc.sum()<<endl;
  173. lc1=lc;
  174. lc1.print();
  175. cout<<lc1.sum()<<" "<<lc.sum()<<endl;
  176.  
  177. } else {
  178. lc.print();
  179. }
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement