#include <iostream>
#include <iterator>
#include <algorithm>
using namespace std;
struct magic { int a, b; };
inline magic & operator ++ (magic &m) { return ++m.a, ++m.b, m; }
inline double operator * (const magic &m) { return (double)m.a / m.b; }
inline bool operator != (const magic &l, const magic &r) { return l.a != r.a || l.b != r.b; }
namespace std
{
template<> struct iterator_traits<magic>
{
typedef magic value_type;
typedef magic& reference;
typedef std::input_iterator_tag iterator_category;
};
}
//inline magic *operator->(const magic &m) { return &m; }
//auto t = for_each(magic {44, 11}, magic {144, 111}, [](double x) { cout << x << '\n'; });
int main() {
copy(magic {44, 11}, magic {144, 111}, ostream_iterator<double>(std::cout, "\n"));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG1hZ2ljIHsgaW50IGEsIGI7IH07CmlubGluZSBtYWdpYyAmIG9wZXJhdG9yICsrIChtYWdpYyAmbSkgeyByZXR1cm4gKyttLmEsICsrbS5iLCBtOyB9CmlubGluZSBkb3VibGUgb3BlcmF0b3IgKiAoY29uc3QgbWFnaWMgJm0pIHsgcmV0dXJuIChkb3VibGUpbS5hIC8gbS5iOyB9CmlubGluZSBib29sIG9wZXJhdG9yICE9IChjb25zdCBtYWdpYyAmbCwgY29uc3QgbWFnaWMgJnIpIHsgcmV0dXJuIGwuYSAhPSByLmEgfHwgbC5iICE9IHIuYjsgfQoKbmFtZXNwYWNlIHN0ZAp7Cgp0ZW1wbGF0ZTw+IHN0cnVjdCBpdGVyYXRvcl90cmFpdHM8bWFnaWM+CnsKICAgIHR5cGVkZWYgbWFnaWMgdmFsdWVfdHlwZTsKICAgIHR5cGVkZWYgbWFnaWMmIHJlZmVyZW5jZTsKICAgIHR5cGVkZWYgc3RkOjppbnB1dF9pdGVyYXRvcl90YWcgaXRlcmF0b3JfY2F0ZWdvcnk7Cn07Cgp9Ci8vaW5saW5lIG1hZ2ljICpvcGVyYXRvci0+KGNvbnN0IG1hZ2ljICZtKSB7IHJldHVybiAmbTsgfQoKLy9hdXRvIHQgPSBmb3JfZWFjaChtYWdpYyB7NDQsIDExfSwgbWFnaWMgezE0NCwgMTExfSwgW10oZG91YmxlIHgpIHsgY291dCA8PCB4IDw8ICdcbic7IH0pOwoJCmludCBtYWluKCkgewoJY29weShtYWdpYyB7NDQsIDExfSwgbWFnaWMgezE0NCwgMTExfSwgb3N0cmVhbV9pdGVyYXRvcjxkb3VibGU+KHN0ZDo6Y291dCwgIlxuIikpOwp9