Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class List{
- private:
- int * broevi;
- int broj_elementi;
- public:
- List(){};
- List(int * broevi,int broj_elementi)
- {
- this->broj_elementi=broj_elementi;
- this->broevi = new int [broj_elementi];
- for(int i=0;i<broj_elementi;i++)
- {
- this->broevi[i]=broevi[i];
- }
- }
- List(const List &l)
- {
- this->broj_elementi=l.broj_elementi;
- this->broevi = new int [l.broj_elementi];
- for(int i=0;i<broj_elementi;i++)
- {
- this->broevi[i]=l.broevi[i];
- }
- }
- List &operator=(const List &l)
- {
- if(this!=&l)
- {
- delete [] broevi;
- this->broj_elementi=l.broj_elementi;
- this->broevi = new int [l.broj_elementi];
- for(int i=0;i<broj_elementi;i++)
- {
- this->broevi[i]=l.broevi[i];
- }
- }
- return *this;
- }
- int sum()
- {
- int suma=0;
- for(int i=0;i<broj_elementi;i++)
- {
- suma+=broevi[i];
- }
- return suma;
- }
- double average()
- {
- return sum()*1.0/broj_elementi;
- }
- void pecati()
- {
- cout<<broj_elementi<<": ";
- for(int i=0;i<broj_elementi;i++)
- {
- cout<<broevi[i]<<" ";
- }
- cout<<"sum: "<<sum();
- cout<<" average: "<<average();
- cout<<endl;
- }
- int get_elementi()
- {
- return broj_elementi;
- }
- ~List(){}
- };
- class ListContainer{
- private:
- List *lists;
- int broj_listi;
- int trials;
- public:
- ListContainer(List *lists=0,int broj_listi=0,int trials=0)
- {
- this->trials=trials;
- this->broj_listi=broj_listi;
- this->lists = new List[broj_listi];
- for(int i=0;i<broj_listi;i++)
- {
- this->lists[i]=lists[i];
- }
- }
- ListContainer(ListContainer &lc)
- {
- this->trials=lc.trials;
- this->broj_listi=lc.broj_listi;
- this->lists = new List[lc.broj_listi];
- for(int i=0;i<broj_listi;i++)
- {
- this->lists[i]=lc.lists[i];
- }
- }
- ListContainer &operator=(ListContainer &lc)
- {
- if(this!=&lc)
- {
- delete [] lists;
- this->trials=lc.trials;
- this->broj_listi=lc.broj_listi;
- this->lists = new List[lc.broj_listi];
- for(int i=0;i<broj_listi;i++)
- {
- this->lists[i]=lc.lists[i];
- }
- }
- return *this;
- }
- void print()
- {
- if(this->broj_listi==0)
- {
- cout<<"The list is empty" <<endl;
- return;
- }
- else
- {
- for(int i=0;i<broj_listi;i++)
- {
- cout<< "List number: "<<i+1<< " List info: ";
- this->lists[i].pecati();
- }
- }
- cout<<"Sum: "<<this->sum();
- cout<<" Average: "<<this->average()<<endl;
- cout<<"Successful attempts: "<<this->broj_listi<<" Failed attempts: "<<trials<<endl;
- }
- int sum()
- {
- int suma=0;
- for(int i=0;i<broj_listi;i++)
- {
- suma+=lists[i].sum();
- }
- return suma;
- }
- double average()
- {
- int elementi=0;
- for(int i=0;i<broj_listi;i++)
- {
- elementi+=lists[i].get_elementi();
- }
- return (double)sum()/elementi;
- }
- void addNewList(List l)
- {
- // mnogu dobra funkcija thanks to eden person od negotino we will call her sandra sandrews for privacy
- int flag=0;
- for(int i=0;i<broj_listi;i++)
- {
- if(lists[i].sum()==l.sum())
- flag=1;
- }
- if(flag!=1)
- {
- List *tmp = new List[broj_listi +1];
- for(int i=0;i<broj_listi;i++)
- tmp[i]=lists[i];
- tmp[broj_listi++]=l;
- lists = tmp;
- }
- else trials++;
- }
- ~ListContainer(){}
- };
- int main() {
- ListContainer lc;
- int N;
- cin>>N;
- for (int i=0;i<N;i++) {
- int n;
- int niza[100];
- cin>>n;
- for (int j=0;j<n;j++){
- cin>>niza[j];
- }
- List l=List(niza,n);
- lc.addNewList(l);
- }
- int testCase;
- cin>>testCase;
- if (testCase==1) {
- cout<<"Test case for operator ="<<endl;
- ListContainer lc1;
- lc1.print();
- cout<<lc1.sum()<<" "<<lc.sum()<<endl;
- lc1=lc;
- lc1.print();
- cout<<lc1.sum()<<" "<<lc.sum()<<endl;
- lc1.sum();
- lc1.average();
- }
- else {
- lc.print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement