Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- #include <cmath>
- using namespace std;
- class List{
- private:
- int *broevi;
- int brbr;
- public:
- List(){
- this->brbr=0;
- }
- List(int *broevi,int brbr){
- this->brbr=brbr;
- this->broevi=new int[brbr];
- for(int i=0;i<brbr;i++)
- this->broevi[i]=broevi[i];
- }
- List(const List & l1){
- this->brbr=l1.brbr;
- this->broevi=new int[l1.brbr];
- for(int i=0;i<l1.brbr;i++)
- this->broevi[i]=l1.broevi[i];
- }
- List& operator=(const List & l1){
- if(this!=&l1){
- this->brbr=l1.brbr;
- delete [] broevi;
- this->broevi=new int[l1.brbr];
- for(int i=0;i<l1.brbr;i++)
- this->broevi[i]=l1.broevi[i];
- }
- return *this;
- }
- ~List(){
- delete [] broevi;
- }
- void pecati(){
- int suma=0;
- cout<<brbr<<": ";
- for(int i=0;i<brbr;i++)
- {
- cout<<broevi[i]<<" ";
- suma+=broevi[i];
- }
- }
- int sum(){
- int suma=0;
- for(int i=0;i<brbr;i++)
- {
- suma+=broevi[i];
- }
- return suma;
- }
- double average(){
- double prosek=sum();
- prosek/=brbr;
- return prosek;
- }
- friend class ListContainer;
- };
- class ListContainer{
- private:
- List *listi;
- int brlistovi;
- int brobidi;
- public:
- ListContainer(){
- this->brobidi=0;
- this->brlistovi=0;
- this->listi=new List[brlistovi];
- }
- ListContainer(const ListContainer & lc1){
- this->brobidi=lc1.brobidi;
- this->brlistovi=lc1.brlistovi;
- this->listi=new List[lc1.brlistovi];
- for(int i=0;i<brlistovi;i++)
- listi[i]=lc1.listi[i];
- }
- ListContainer& operator=(const ListContainer & lc1){
- if(this!=&lc1){
- this->brobidi=lc1.brobidi;
- this->brlistovi=lc1.brlistovi;
- delete [] listi;
- this->listi=new List[lc1.brlistovi];
- for(int i=0;i<brlistovi;i++)
- listi[i]=lc1.listi[i];
- }
- return *this;
- }
- ~ListContainer(){
- delete [] listi;
- }
- void print(){
- if(brlistovi==0){
- cout<<"The list is empty"<<endl;
- }
- else if(brlistovi!=0)
- for(int i=0;i<brlistovi;i++){
- cout<<"List number: "<<i+1;
- cout<<" List info: ";
- listi[i].pecati();
- cout<<"sum: "<<listi[i].sum();
- cout<<" average: "<<listi[i].average();
- cout<<endl;
- }
- if(brlistovi!=0){
- cout<<"Sum: "<<sum();
- cout<<" Average: "<<average()<<endl;
- cout<<"Successful attempts: "<<brlistovi<<" Failed attempts: "<<brobidi<<endl;
- }
- }
- void addNewList(List l){
- int flag=0;
- for(int i=0;i<brlistovi;i++)
- {
- if(listi[i].sum()==l.sum())
- {
- brobidi++;
- flag=1;
- }
- }
- if(flag==0){
- List *tmp = new List[brlistovi+1];
- for(int i=0;i<brlistovi;i++)
- tmp[i]=listi[i];
- tmp[brlistovi]=l;
- brlistovi++;
- delete [] listi;
- listi=tmp;
- }
- }
- int sum(){
- int sum=0;
- for(int i=0;i<brlistovi;i++)
- sum+=listi[i].sum();
- return sum;
- }
- double average(){
- double suma=0;
- int brojac=0;
- for(int i=0;i<brlistovi;i++)
- {
- for(int j=0;j<listi[i].brbr;j++)
- {
- suma+=listi[i].broevi[j];
- brojac++;
- }
- }
- return suma/brojac;
- }
- };
- 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