#include <iostream>
//#include <iomanip>
using namespace std;
class Bruch
{
public:
int Zaehler;
int Nenner;
};
istream& operator >>(istream& stream, const char *literal)
{
while (*literal)
if (stream.get() != *literal++)
{
stream.clear(ios::failbit);
break;
}
return stream;
}
istream& operator >>(istream& stream, Bruch& bruch)
{
stream >> bruch.Zaehler >> "/" >> bruch.Nenner;
return stream;
}
ostream& operator <<(ostream& stream, Bruch bruch)
{
stream << bruch.Zaehler << "/" << bruch.Nenner;
return stream;
}
int main() {
Bruch b;
cin >> b;
if (cin)
cout << "parsed correctly: " << b;
else
cout << "parse error!";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgovLyNpbmNsdWRlIDxpb21hbmlwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQnJ1Y2gKewpwdWJsaWM6CiAgaW50IFphZWhsZXI7CiAgaW50IE5lbm5lcjsKfTsKCmlzdHJlYW0mIG9wZXJhdG9yID4+KGlzdHJlYW0mIHN0cmVhbSwgY29uc3QgY2hhciAqbGl0ZXJhbCkKewoJd2hpbGUgKCpsaXRlcmFsKQoJICBpZiAoc3RyZWFtLmdldCgpICE9ICpsaXRlcmFsKyspCgkgIHsKCSAgICBzdHJlYW0uY2xlYXIoaW9zOjpmYWlsYml0KTsKCSAgICBicmVhazsKCSAgfQoJCglyZXR1cm4gc3RyZWFtOwp9Cgppc3RyZWFtJiBvcGVyYXRvciA+Pihpc3RyZWFtJiBzdHJlYW0sIEJydWNoJiBicnVjaCkKewogIHN0cmVhbSA+PiBicnVjaC5aYWVobGVyID4+ICIvIiA+PiBicnVjaC5OZW5uZXI7CiAgcmV0dXJuIHN0cmVhbTsKfQoKb3N0cmVhbSYgb3BlcmF0b3IgPDwob3N0cmVhbSYgc3RyZWFtLCBCcnVjaCBicnVjaCkKewogIHN0cmVhbSA8PCBicnVjaC5aYWVobGVyIDw8ICIvIiA8PCBicnVjaC5OZW5uZXI7CiAgcmV0dXJuIHN0cmVhbTsKfQoKaW50IG1haW4oKSB7CglCcnVjaCBiOwoJCgljaW4gPj4gYjsKCWlmIChjaW4pCgkJY291dCA8PCAicGFyc2VkIGNvcnJlY3RseTogIiA8PCBiOwoJZWxzZQoJICAgIGNvdXQgPDwgInBhcnNlIGVycm9yISI7CgkKCXJldHVybiAwOwp9