Advertisement
LegoDrifter

Mnogu glupa zadaca

May 19th, 2020
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.73 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 broj_elementi;
  9. public:
  10.     List(){};
  11.     List(int * broevi,int broj_elementi)
  12.     {
  13.         this->broj_elementi=broj_elementi;
  14.         this->broevi = new int [broj_elementi];
  15.         for(int i=0;i<broj_elementi;i++)
  16.         {
  17.             this->broevi[i]=broevi[i];
  18.         }
  19.     }
  20.     List(const List &l)
  21.     {
  22.         this->broj_elementi=l.broj_elementi;
  23.         this->broevi = new int [l.broj_elementi];
  24.         for(int i=0;i<broj_elementi;i++)
  25.         {
  26.             this->broevi[i]=l.broevi[i];
  27.         }
  28.     }
  29.     List &operator=(const List &l)
  30.     {
  31.         if(this!=&l)
  32.         {
  33.         delete [] broevi;
  34.         this->broj_elementi=l.broj_elementi;
  35.         this->broevi = new int [l.broj_elementi];
  36.         for(int i=0;i<broj_elementi;i++)
  37.         {
  38.             this->broevi[i]=l.broevi[i];
  39.         }
  40.         }
  41.             return *this;
  42.     }
  43.     int sum()
  44.     {
  45.         int suma=0;
  46.         for(int i=0;i<broj_elementi;i++)
  47.         {
  48.             suma+=broevi[i];
  49.         }
  50.         return suma;
  51.     }
  52.     double average()
  53.     {
  54.         return sum()*1.0/broj_elementi;
  55.     }
  56.     void pecati()
  57.     {
  58.        cout<<broj_elementi<<": ";
  59.        for(int i=0;i<broj_elementi;i++)
  60.        {
  61.        cout<<broevi[i]<<" ";
  62.        }
  63.        cout<<"sum: "<<sum();
  64.        cout<<" average: "<<average();
  65.         cout<<endl;
  66.  
  67.     }
  68.     int get_elementi()
  69.     {
  70.         return broj_elementi;
  71.     }
  72.     ~List(){}
  73. };
  74. class ListContainer{
  75. private:
  76.     List *lists;
  77.     int broj_listi;
  78.     int trials;
  79. public:
  80.     ListContainer(List *lists=0,int broj_listi=0,int trials=0)
  81.     {
  82.         this->trials=trials;
  83.         this->broj_listi=broj_listi;
  84.         this->lists = new List[broj_listi];
  85.         for(int i=0;i<broj_listi;i++)
  86.         {
  87.             this->lists[i]=lists[i];
  88.         }
  89.     }
  90.     ListContainer(ListContainer &lc)
  91.     {
  92.         this->trials=lc.trials;
  93.         this->broj_listi=lc.broj_listi;
  94.         this->lists = new List[lc.broj_listi];
  95.         for(int i=0;i<broj_listi;i++)
  96.         {
  97.             this->lists[i]=lc.lists[i];
  98.         }
  99.     }
  100.     ListContainer &operator=(ListContainer &lc)
  101.     {
  102.         if(this!=&lc)
  103.         {
  104.         delete [] lists;
  105.         this->trials=lc.trials;
  106.         this->broj_listi=lc.broj_listi;
  107.         this->lists = new List[lc.broj_listi];
  108.         for(int i=0;i<broj_listi;i++)
  109.         {
  110.             this->lists[i]=lc.lists[i];
  111.         }
  112.         }
  113.         return *this;
  114.     }
  115.     void print()
  116.     {
  117.        if(this->broj_listi==0)
  118.            {
  119.             cout<<"The list is empty" <<endl;
  120.            return;
  121.            }
  122.            else
  123.            {
  124.                for(int i=0;i<broj_listi;i++)
  125.                {
  126.                    cout<< "List number: "<<i+1<< " List info: ";
  127.                    this->lists[i].pecati();
  128.                }
  129.            }
  130.            cout<<"Sum: "<<this->sum();
  131.            cout<<" Average: "<<this->average()<<endl;
  132.            cout<<"Successful attempts: "<<this->broj_listi<<" Failed attempts: "<<trials<<endl;
  133.  
  134.  
  135.     }
  136.     int sum()
  137.     {
  138.         int suma=0;
  139.         for(int i=0;i<broj_listi;i++)
  140.         {
  141.             suma+=lists[i].sum();
  142.         }
  143.         return suma;
  144.     }
  145.      double average()
  146.     {
  147.        
  148.         int elementi=0;
  149.         for(int i=0;i<broj_listi;i++)
  150.         {
  151.            
  152.             elementi+=lists[i].get_elementi();
  153.         }
  154.         return (double)sum()/elementi;
  155.     }
  156.     void addNewList(List l)
  157.     {
  158.     // mnogu dobra funkcija thanks to eden person od negotino we will call her sandra sandrews for privacy
  159.         int flag=0;
  160.         for(int i=0;i<broj_listi;i++)
  161.         {
  162.             if(lists[i].sum()==l.sum())
  163.                 flag=1;
  164.         }
  165.         if(flag!=1)
  166.         {
  167.             List *tmp = new List[broj_listi +1];
  168.             for(int i=0;i<broj_listi;i++)
  169.                 tmp[i]=lists[i];
  170.             tmp[broj_listi++]=l;
  171.  
  172.             lists = tmp;
  173.         }
  174.         else trials++;
  175.     }
  176.     ~ListContainer(){}
  177.  
  178.  
  179.  
  180. };
  181. int main() {
  182.  
  183.     ListContainer lc;
  184.     int N;
  185.     cin>>N;
  186.  
  187.     for (int i=0;i<N;i++) {
  188.         int n;
  189.         int niza[100];
  190.  
  191.         cin>>n;
  192.  
  193.         for (int j=0;j<n;j++){
  194.             cin>>niza[j];
  195.  
  196.         }
  197.  
  198.         List l=List(niza,n);
  199.  
  200.         lc.addNewList(l);
  201.     }
  202.  
  203.  
  204.     int testCase;
  205.     cin>>testCase;
  206.  
  207.     if (testCase==1) {
  208.         cout<<"Test case for operator ="<<endl;
  209.         ListContainer lc1;
  210.         lc1.print();
  211.         cout<<lc1.sum()<<" "<<lc.sum()<<endl;
  212.         lc1=lc;
  213.         lc1.print();
  214.         cout<<lc1.sum()<<" "<<lc.sum()<<endl;
  215.         lc1.sum();
  216.         lc1.average();
  217.  
  218.     }
  219.     else {
  220.         lc.print();
  221.     }
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement