import java.util.Iterator;
class Zakres implements Iterable<Integer> {
final int start;
final int koniec;
public Zakres(final int start, final int koniec) {
this.start = start;
this.koniec = koniec;
}
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
int aktualny = start;
@Override
public boolean hasNext() {
return aktualny <= koniec;
}
@Override
return aktualny++;
}
@Override
public void remove() {
}
};
}
}
public class Main {
public static void main
(String[] args
) { Zakres zakres = new Zakres(5, 8);
for (int i : zakres) {
}
for (int i : zakres) {
}
for (int i : zakres) {
}
}
}
CmltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CgpjbGFzcyBaYWtyZXMgaW1wbGVtZW50cyBJdGVyYWJsZTxJbnRlZ2VyPiB7CiAgICAKICAgIGZpbmFsIGludCBzdGFydDsKICAgIGZpbmFsIGludCBrb25pZWM7CiAgICAKICAgIHB1YmxpYyBaYWtyZXMoZmluYWwgaW50IHN0YXJ0LCBmaW5hbCBpbnQga29uaWVjKSB7CiAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OwogICAgICAgIHRoaXMua29uaWVjID0ga29uaWVjOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIEl0ZXJhdG9yPEludGVnZXI+IGl0ZXJhdG9yKCkgewogICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3I8SW50ZWdlcj4oKSB7CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgYWt0dWFsbnkgPSBzdGFydDsKCiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFrdHVhbG55IDw9IGtvbmllYzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBJbnRlZ2VyIG5leHQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYWt0dWFsbnkrKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiSWxsZWdhbCBhY3Rpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQogICAgCn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgWmFrcmVzIHpha3JlcyA9IG5ldyBaYWtyZXMoNSwgOCk7CiAgICAgICAgZm9yIChpbnQgaSA6IHpha3JlcykgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSk7CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IGkgOiB6YWtyZXMpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkpOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpIDogemFrcmVzKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpKTsKICAgICAgICB9CiAgICB9Cn0K