#include <iostream>
#include <vector>
using namespace std;
class Rectangle{
public :
Rectangle( double w, double h) ;
double area( ) const {
return width* height;
}
private :
bool operator > ( const Rectangle& other) ;
double width, height;
} ;
Rectangle:: Rectangle ( double w, double h)
: width( w) ,height( h)
{ }
bool Rectangle:: operator > ( const Rectangle& other) {
return this- > area( ) > other- > area( ) ;
}
void bubble_sort( vector< Rectangle> & vec) {
bool swapped = true ;
for ( int i= 0 ; ( i< vec.size ( ) - 1 ) && swapped; i++ ) {
swapped = false ;
for ( int j = i; j< vec.size ( ) - 1 ; j++ ) {
if ( vec[ j] > vec[ j+ 1 ] ) {
Rectangle temp = vec[ j] ;
vec[ j] = vec[ j+ 1 ] ;
vec[ j+ 1 ] = temp;
swapped = true ;
}
}
}
}
int main( ) {
vector< Rectangle> v;
while ( cin ) {
double w,h;
cin >> w>> h;
v.push ( { w,h} ) ;
}
bubble_sort( v) ;
for ( int i= 0 ; i< v.size ( ) ; i++ )
cout << v[ i] .area ( ) << ' ' ;
cout << '\n ' ;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCgoKY2xhc3MgUmVjdGFuZ2xlewogICAgcHVibGljOgogICAgUmVjdGFuZ2xlKGRvdWJsZSB3LCBkb3VibGUgaCk7CiAgICBkb3VibGUgYXJlYSgpIGNvbnN0IHsKICAgICAgICByZXR1cm4gd2lkdGgqaGVpZ2h0OwogICAgfQogICAgcHJpdmF0ZToKICAgIGJvb2wgb3BlcmF0b3IgPihjb25zdCBSZWN0YW5nbGUmIG90aGVyKTsKICAgIGRvdWJsZSB3aWR0aCwgaGVpZ2h0Owp9OwoKCgpSZWN0YW5nbGU6OlJlY3RhbmdsZShkb3VibGUgdywgZG91YmxlIGgpCiAgICA6d2lkdGgodyksaGVpZ2h0KGgpCnt9Cgpib29sIFJlY3RhbmdsZTo6b3BlcmF0b3IgPihjb25zdCBSZWN0YW5nbGUmIG90aGVyKXsKICAgIAogICAgcmV0dXJuIHRoaXMtPmFyZWEoKT5vdGhlci0+YXJlYSgpOwp9CiAgICAgICAgCiAgICAgICAgCnZvaWQgYnViYmxlX3NvcnQodmVjdG9yPFJlY3RhbmdsZT4mIHZlYyl7CiAgICAgICAgYm9vbCBzd2FwcGVkID0gdHJ1ZTsKICAgICAgICAKICAgICAgICBmb3IgKGludCBpPTA7KGk8dmVjLnNpemUoKS0xKSYmIHN3YXBwZWQ7IGkrKyl7CiAgICAgICAgICAgIHN3YXBwZWQgPSBmYWxzZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvcihpbnQgaiA9IGk7IGo8dmVjLnNpemUoKS0xO2orKyl7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmKHZlY1tqXT52ZWNbaisxXSl7CiAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHRlbXAgPSB2ZWNbal07CiAgICAgICAgICAgICAgICAgICAgdmVjW2pdID0gdmVjW2orMV07CiAgICAgICAgICAgICAgICAgICAgdmVjW2orMV0gPSB0ZW1wOwogICAgICAgICAgICAgICAgICAgIHN3YXBwZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCiAgICBpbnQgbWFpbigpewogICAgICAgIHZlY3RvcjxSZWN0YW5nbGU+djsKICAgICAgICAKICAgICAgICB3aGlsZShjaW4pewogICAgICAgICAgICBkb3VibGUgdyxoOwogICAgICAgICAgICAKICAgICAgICAgICAgY2luPj53Pj5oOwogICAgICAgICAgICB2LnB1c2goe3csaH0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBidWJibGVfc29ydCh2KTsKICAgICAgICBmb3IoaW50IGk9MDsgaTx2LnNpemUoKTtpKyspIAogICAgICAgIGNvdXQ8PCB2W2ldLmFyZWEoKTw8JyAnOwogICAgICAgIGNvdXQ8PCAnXG4nOwogICAgfQogICAgICAgIH0KICAgIH0=
compilation info
prog.cpp: In member function ‘bool Rectangle::operator>(const Rectangle&)’:
prog.cpp:27:30: error: base operand of ‘->’ has non-pointer type ‘const Rectangle’
return this->area()>other->area();
^~
prog.cpp: In function ‘void bubble_sort(std::vector<Rectangle>&)’:
prog.cpp:39:34: error: ‘bool Rectangle::operator>(const Rectangle&)’ is private within this context
if(vec[j]>vec[j+1]){
^
prog.cpp:25:6: note: declared private here
bool Rectangle::operator >(const Rectangle& other){
^~~~~~~~~
prog.cpp: In function ‘int main()’:
prog.cpp:56:15: error: ‘class std::vector<Rectangle>’ has no member named ‘push’
v.push({w,h});
^~~~
prog.cpp: At global scope:
prog.cpp:64:9: error: expected declaration before ‘}’ token
}
^
stdout