struct Reader {
std::string s;
int p = 0;
bool block = false;
int operator()() {
if (block) return block = false, -1;
if (p == s.length()) std::getline(std::cin, s), p = 0, s += '\n';
int res = -1;
bool flg = false;
while (p < s.length()) {
if (std::isdigit(s[p])) {
if (res == -1) res = s[p] - '0';
else res = res * 10 + s[p] - '0';
flg = true;
} else if (flg) {
if (s[p] == '\n') block = true;
p++;
return res;
}
p++;
}
return res;
}
} read;
调用 read() 以读入一个整数,如返回 -1 则说明读完了一行。