Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Runner {
- private :
- char * ime;
- char drzava[50];
- int minuti;
- int sekundi;
- int brmedali;
- public:
- Runner(){
- ime = new char [0];
- }
- Runner(const char * ime, const char * drzava, int minuti, int sekundi, int brmedali)
- {
- this->ime=new char [strlen(ime)+1];
- strcpy(this->ime,ime);
- strcpy(this->drzava,drzava);
- this->minuti=minuti;
- this->sekundi=sekundi;
- this->brmedali=brmedali;
- }
- ~Runner()
- {
- delete [] ime;
- }
- Runner(const Runner &r)
- {
- this->ime=new char [strlen(r.ime)+1];
- strcpy(this->ime,r.ime);
- strcpy(this->drzava,r.drzava);
- this->minuti=r.minuti;
- this->sekundi=r.sekundi;
- this->brmedali=r.brmedali;
- }
- Runner &operator=(const Runner &r)
- {
- if(this!=&r)
- {
- delete [] ime;
- this->ime=new char [strlen(r.ime)+1];
- strcpy(this->ime,r.ime);
- strcpy(this->drzava,r.drzava);
- this->minuti=r.minuti;
- this->sekundi=r.sekundi;
- this->brmedali=r.brmedali;
- }
- return *this;
- }
- friend ostream& operator<<(ostream &output,Runner &r) {
- output<<r.ime<<"-"<<r.drzava<<"-"<<r.minuti<<":"<<r.sekundi<<"-"<<r.brmedali;
- output<<endl;
- return output;
- }
- Runner & operator++()
- {
- brmedali++;
- return *this;
- }
- bool operator !=(const Runner &r)
- {
- return strcmp(drzava,r.drzava) ;
- }
- bool operator <(Runner &r)
- {
- if(minuti==r.minuti)
- {
- return sekundi<r.sekundi;
- }
- return minuti<r.minuti;
- }
- };
- class Race
- {
- private :
- char ime[50];
- Runner * trkaci;
- int brtrkaci;
- public :
- Race(const char * ime)
- {
- strcpy(this->ime,ime);
- this->trkaci=new Runner[0];
- this->brtrkaci=0;
- }
- ~Race()
- {
- delete [] trkaci;
- }
- Race(const Race &rc)
- {
- this->brtrkaci=rc.brtrkaci;
- strcpy(ime,rc.ime);
- trkaci=new Runner[brtrkaci];
- for(int i=0;i<brtrkaci;i++)
- trkaci[i]=rc.trkaci[i];
- }
- Race &operator=(const Race &rc)
- {
- if(this!=&rc)
- {
- delete [] trkaci;
- strcpy(this->ime,rc.ime);
- this->trkaci=new Runner [rc.brtrkaci+1];
- brtrkaci=rc.brtrkaci;
- strcpy(ime,rc.ime);
- for(int i=0;i<brtrkaci;i++)
- trkaci[i]=rc.trkaci[i];
- brtrkaci=rc.brtrkaci;
- } return *this;
- }
- Race &operator +=(const Runner &r)
- {
- Runner *pom=new Runner[brtrkaci+1];
- for(int i=0;i<brtrkaci;i++)
- {
- pom[i]=trkaci[i];
- }
- brtrkaci++;
- pom[brtrkaci]=r;
- delete [] trkaci;
- trkaci=pom;
- return *this;
- }
- Race & operator-=(const Runner &r)
- {
- int br=0;
- for(int i=0;i<brtrkaci;i++)
- {
- if(trkaci[i]!=r)
- br++;
- }
- Runner *pom = new Runner[br];
- int j=0;
- for(int i=0;i<brtrkaci;i++)
- {
- if(trkaci[i]!=r)
- {
- pom[j]=trkaci[i];
- j++;
- }
- }
- delete [] trkaci;
- trkaci = pom ;
- brtrkaci=br;
- return *this;
- }
- friend ostream &operator << (ostream &o, Race &r)
- {
- o<<r.ime<<" : "<<endl;
- for(int i=0;i<r.brtrkaci;++i)
- o<<r.trkaci[i];
- return o;
- }
- Race &operator++()
- {
- Runner najbrz=trkaci[0];
- int j=0;
- for(int i=0;i<brtrkaci;i++)
- {
- if(trkaci[i]<najbrz)
- {
- najbrz=trkaci[i];
- j=i;
- }
- }
- ++trkaci[j];
- return *this;
- }
- };
- int main() {
- int n;
- cin >> n;
- char nameRace[50];
- cin >> nameRace;
- Race race = Race(nameRace);
- int m;
- cin >> m;
- char name[50];
- char country[50];
- int minutes;
- int seconds;
- int numberOfMedals;
- for (int i=0; i < m; ++i) {
- cin >> name;
- cin >> country;
- cin >> minutes;
- cin >> seconds;
- cin >> numberOfMedals;
- Runner r = Runner(name,country,minutes,seconds,numberOfMedals);
- race += r;
- }
- cout << race;
- if (n == 1) {
- ++race;
- cout << race;
- }
- else if (n == 2) {
- cin >> name;
- cin >> country;
- cin >> minutes;
- cin >> seconds;
- cin >> numberOfMedals;
- Runner r = Runner(name,country,minutes,seconds,numberOfMedals);
- race -= r;
- cout << race;
- }
- else if (n == 3) {
- cin >> name;
- cin >> country;
- cin >> minutes;
- cin >> seconds;
- cin >> numberOfMedals;
- Runner r = Runner(name,country,minutes,seconds,numberOfMedals);
- race -= r;
- ++race;
- cout << race;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement