#include<iostream>
#include<string>
using namespace std;
class Car
{
string nr_;
int power_;
double weight_;
char engine_;
public:
Car();
Car(int);
~Car(){}
string readNr();
int readPower();
double readWeight();
char readChar();
void writeNr(string);
void writePower(int);
void writeWeight(double);
void writeChar(char);
};
class CarHeap
{
static const int capacity_=6;
int counter_;
Car arr_[capacity_];
public:
CarHeap();
friend class Car;
void adCar (Car);
void showCar();
void carEquals(Car,Car);
};
void CarHeap::carEquals(Car first,Car second)
{
first.writeNr(second.readNr());
first.writePower(second.readPower());
first.writeWeight(second.readWeight());
first.writeChar(second.readChar());
}
void CarHeap::showCar()
{
cout << "result" << endl;
for (int i=0;i<counter_;i++)
{
cout << arr_[i].readNr() << " " << arr_[i].readPower() << " ";
}
}
void CarHeap::adCar (Car obj)
{
if (counter_<capacity_)
{
int child=counter_++;
int parent=(child-1)/2;
cout << obj.readPower() << endl;
while (child>0&&arr_[parent].readPower()>obj.readPower())
{
carEquals(arr_[child],arr_[parent]);
child=parent;
parent=(child-1)/2;
}
carEquals(arr_[child],obj);
}
}
CarHeap::CarHeap() {
counter_=0;
}
int Car::readPower()
{
return power_;
}
string Car::readNr()
{
return nr_;
}
double Car::readWeight()
{
return weight_;
}
char Car::readChar()
{
return engine_;
}
void Car::writeNr(string x)
{
nr_=x;
}
void Car::writePower(int x)
{
power_=x;
}
void Car::writeWeight(double x)
{
weight_=x;
}
void Car::writeChar(char x)
{
engine_=x;
}
Car::Car () {
string nr;
int power;
double weight;
char engine;
cin >> nr;
nr_=nr;
cin >> power;
power_=power;
cin >> weight;
weight_=weight;
cin >> engine;
engine_=engine;
}
int main()
{
CarHeap arr;
Car a;
arr.adCar(a);
Car b;
arr.adCar(b);
Car c;
arr.adCar(c);
Car d;
arr.adCar(d);
Car e;
arr.adCar(e);
Car f;
arr.adCar(f);
arr.showCar();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIENhcgp7CiAgICAgICAgc3RyaW5nIG5yXzsKICAgICAgICBpbnQgcG93ZXJfOwogICAgICAgIGRvdWJsZSB3ZWlnaHRfOwogICAgICAgIGNoYXIgZW5naW5lXzsKICAgIHB1YmxpYzoKICAgICAgICBDYXIoKTsKICAgICAgICBDYXIoaW50KTsKICAgICAgICB+Q2FyKCl7fQogICAgICAgIHN0cmluZyByZWFkTnIoKTsKICAgICAgICBpbnQgcmVhZFBvd2VyKCk7CiAgICAgICAgZG91YmxlIHJlYWRXZWlnaHQoKTsKICAgICAgICBjaGFyIHJlYWRDaGFyKCk7CiAgICAgICAgdm9pZCB3cml0ZU5yKHN0cmluZyk7CiAgICAgICAgdm9pZCB3cml0ZVBvd2VyKGludCk7CiAgICAgICAgdm9pZCB3cml0ZVdlaWdodChkb3VibGUpOwogICAgICAgIHZvaWQgd3JpdGVDaGFyKGNoYXIpOwp9OwoKY2xhc3MgQ2FySGVhcAp7CiAgICAgICAgc3RhdGljIGNvbnN0IGludCBjYXBhY2l0eV89NjsKICAgICAgICBpbnQgY291bnRlcl87CiAgICAgICAgQ2FyIGFycl9bY2FwYWNpdHlfXTsKICAgIHB1YmxpYzoKICAgICAgICBDYXJIZWFwKCk7CiAgICAgICAgZnJpZW5kIGNsYXNzIENhcjsKICAgICAgICB2b2lkIGFkQ2FyIChDYXIpOwogICAgICAgIHZvaWQgc2hvd0NhcigpOwogICAgICAgIHZvaWQgY2FyRXF1YWxzKENhcixDYXIpOwoKfTsKCnZvaWQgQ2FySGVhcDo6Y2FyRXF1YWxzKENhciBmaXJzdCxDYXIgc2Vjb25kKQp7CiAgICBmaXJzdC53cml0ZU5yKHNlY29uZC5yZWFkTnIoKSk7CiAgICBmaXJzdC53cml0ZVBvd2VyKHNlY29uZC5yZWFkUG93ZXIoKSk7CiAgICBmaXJzdC53cml0ZVdlaWdodChzZWNvbmQucmVhZFdlaWdodCgpKTsKICAgIGZpcnN0LndyaXRlQ2hhcihzZWNvbmQucmVhZENoYXIoKSk7Cn0KCnZvaWQgQ2FySGVhcDo6c2hvd0NhcigpCnsKICAgIGNvdXQgPDwgInJlc3VsdCIgPDwgZW5kbDsKICAgIGZvciAoaW50IGk9MDtpPGNvdW50ZXJfO2krKykKICAgIHsKICAgICAgICBjb3V0IDw8IGFycl9baV0ucmVhZE5yKCkgPDwgIiAiIDw8IGFycl9baV0ucmVhZFBvd2VyKCkgPDwgIiAiOwogICAgfQp9Cgp2b2lkIENhckhlYXA6OmFkQ2FyIChDYXIgb2JqKQp7CiAgICBpZiAoY291bnRlcl88Y2FwYWNpdHlfKQogICAgewogICAgICAgIGludCBjaGlsZD1jb3VudGVyXysrOwogICAgICAgIGludCBwYXJlbnQ9KGNoaWxkLTEpLzI7CiAgICAgICAgY291dCA8PCBvYmoucmVhZFBvd2VyKCkgPDwgZW5kbDsKICAgICAgICB3aGlsZSAoY2hpbGQ+MCYmYXJyX1twYXJlbnRdLnJlYWRQb3dlcigpPm9iai5yZWFkUG93ZXIoKSkKICAgICAgICB7CiAgICAgICAgICAgIGNhckVxdWFscyhhcnJfW2NoaWxkXSxhcnJfW3BhcmVudF0pOwogICAgICAgICAgICBjaGlsZD1wYXJlbnQ7CiAgICAgICAgICAgIHBhcmVudD0oY2hpbGQtMSkvMjsKICAgICAgICB9CiAgICAgICAgY2FyRXF1YWxzKGFycl9bY2hpbGRdLG9iaik7CiAgICB9Cn0KCgpDYXJIZWFwOjpDYXJIZWFwKCkgewogICAgY291bnRlcl89MDsKfQoKaW50IENhcjo6cmVhZFBvd2VyKCkKewogICAgcmV0dXJuIHBvd2VyXzsKfQoKc3RyaW5nIENhcjo6cmVhZE5yKCkKewogICAgcmV0dXJuIG5yXzsKfQpkb3VibGUgQ2FyOjpyZWFkV2VpZ2h0KCkKewogICAgcmV0dXJuIHdlaWdodF87Cn0KY2hhciBDYXI6OnJlYWRDaGFyKCkKewogICAgcmV0dXJuIGVuZ2luZV87Cn0Kdm9pZCBDYXI6OndyaXRlTnIoc3RyaW5nIHgpCnsKICAgIG5yXz14Owp9CnZvaWQgQ2FyOjp3cml0ZVBvd2VyKGludCB4KQp7CiAgICBwb3dlcl89eDsKfQp2b2lkIENhcjo6d3JpdGVXZWlnaHQoZG91YmxlIHgpCnsKICAgIHdlaWdodF89eDsKfQp2b2lkIENhcjo6d3JpdGVDaGFyKGNoYXIgeCkKewogICAgZW5naW5lXz14Owp9CgoKQ2FyOjpDYXIgKCkgewogICAgc3RyaW5nIG5yOwogICAgaW50IHBvd2VyOwogICAgZG91YmxlIHdlaWdodDsKICAgIGNoYXIgZW5naW5lOwogICAgY2luID4+IG5yOwogICAgbnJfPW5yOwoKICAgIGNpbiA+PiBwb3dlcjsKICAgIHBvd2VyXz1wb3dlcjsKCiAgICBjaW4gPj4gd2VpZ2h0OwogICAgd2VpZ2h0Xz13ZWlnaHQ7CgogICAgY2luID4+IGVuZ2luZTsKICAgIGVuZ2luZV89ZW5naW5lOwoKfQoKCmludCBtYWluKCkKewogICAgQ2FySGVhcCBhcnI7CiAgICBDYXIgYTsKICAgIGFyci5hZENhcihhKTsKICAgIENhciBiOwogICAgYXJyLmFkQ2FyKGIpOwogICAgQ2FyIGM7CiAgICBhcnIuYWRDYXIoYyk7CiAgICBDYXIgZDsKICAgIGFyci5hZENhcihkKTsKICAgIENhciBlOwogICAgYXJyLmFkQ2FyKGUpOwogICAgQ2FyIGY7CiAgICBhcnIuYWRDYXIoZik7CiAgICBhcnIuc2hvd0NhcigpOwoKICAgIHJldHVybiAwOwp9Cg==