#include <iostream>
using namespace std;
class Shape
{
public :
virtual ~Shape( ) { }
virtual double getArea( ) const = 0 ;
virtual double getPerimeter( ) const = 0 ;
virtual void print( ) const = 0 ;
} ;
bool sortByArea( Shape* first, Shape* second)
{
if ( first == NULL || second == NULL )
{
return false ;
}
return ( first- > getArea( ) < second- > getArea( ) ) ;
}
constexpr bool perimeterBiggerThan20( Shape* s)
{
if ( ! s)
{
return false ;
}
return ( s- > getPerimeter( ) > 20 ) ;
}
int main( ) {
// your code goes here
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU2hhcGUKewpwdWJsaWM6CiAgICB2aXJ0dWFsIH5TaGFwZSgpIHt9CgogICAgdmlydHVhbCBkb3VibGUgZ2V0QXJlYSgpIGNvbnN0ID0gMDsKICAgIHZpcnR1YWwgZG91YmxlIGdldFBlcmltZXRlcigpIGNvbnN0ID0gMDsKICAgIHZpcnR1YWwgdm9pZCBwcmludCgpIGNvbnN0ID0gMDsKfTsKCmJvb2wgc29ydEJ5QXJlYShTaGFwZSogZmlyc3QsIFNoYXBlKiBzZWNvbmQpCnsKICAgIGlmKGZpcnN0ID09IE5VTEwgfHwgc2Vjb25kID09IE5VTEwpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIChmaXJzdC0+Z2V0QXJlYSgpIDwgc2Vjb25kLT5nZXRBcmVhKCkpOwp9Cgpjb25zdGV4cHIgYm9vbCBwZXJpbWV0ZXJCaWdnZXJUaGFuMjAoU2hhcGUqIHMpCnsKICAgIGlmKCFzKQogICAgewogICAgCXJldHVybiBmYWxzZTsgICAgCiAgICB9CiAgICByZXR1cm4gKHMtPmdldFBlcmltZXRlcigpID4gMjApOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9