#include <iostream>
using namespace std;
class Piece
{
public:
virtual char print() = 0;
};
class King : public Piece
{
public:
virtual char print() { return 'K'; }
};
class Queen : public Piece
{
public:
virtual char print() { return 'Q'; }
};
int main()
{
Piece * pieces[2];
pieces[0] = new Queen();
pieces[1] = new King();
cout << "Queen: " << pieces[0]->print() << endl;
cout << "King: " << pieces[1]->print() << endl;
delete pieces[0];
delete pieces[1];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIApjbGFzcyBQaWVjZQp7CiAgICAgICAgcHVibGljOgogICAgICAgIHZpcnR1YWwgY2hhciBwcmludCgpID0gMDsKfTsKIApjbGFzcyBLaW5nIDogcHVibGljIFBpZWNlCnsKICAgICAgICBwdWJsaWM6CiAgICAgICAgdmlydHVhbCBjaGFyIHByaW50KCkgeyByZXR1cm4gJ0snOyB9Cn07CiAKY2xhc3MgUXVlZW4gOiBwdWJsaWMgUGllY2UKewogICAgICAgIHB1YmxpYzoKICAgICAgICB2aXJ0dWFsIGNoYXIgcHJpbnQoKSB7IHJldHVybiAnUSc7IH0KfTsKIAppbnQgbWFpbigpIAp7CiAgICAgICAgUGllY2UgKiBwaWVjZXNbMl07CiAgICAgICAgCiAgICAgICAgcGllY2VzWzBdID0gbmV3IFF1ZWVuKCk7CiAgICAgICAgcGllY2VzWzFdID0gbmV3IEtpbmcoKTsKICAgICAgICAKICAgICAgICBjb3V0IDw8ICJRdWVlbjogIiA8PCBwaWVjZXNbMF0tPnByaW50KCkgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8ICJLaW5nOiAiICA8PCBwaWVjZXNbMV0tPnByaW50KCkgPDwgZW5kbDsKCglkZWxldGUgcGllY2VzWzBdOwoJZGVsZXRlIHBpZWNlc1sxXTsKICAgICAgICAKICAgICAgICByZXR1cm4gMDsKfQ==