Please explain this code for fast input.
The code is too large, so I'm posting the link.
http://www.codechef.com/viewsolution/1553773
Please explain the code outside int main() i.e
class Fastinput
line-by-line, if possible or mention any website/link to go through. (:
You might get some more replies if you ask more specific questions and maybe post some small code segments in here.
Okay mutexe (:
Plz explain the code after defining the terms like dataOffset, buffer, uint32_t etc. (assuming that they are commonly used terms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public:
size_t m_dataOffset;
FastInput() {
m_dataOffset = 0;
m_dataSize = 0;
m_v = 0x80000000;
}
uint32_t ReadNext() {
if (m_dataOffset == m_dataSize) {
int r = read(0, m_buffer, sizeof(m_buffer));
if (r <= 0) return m_v;
m_dataOffset = 0;
m_dataSize = 0;
int i = 0;
if (m_buffer[0] < '0') {
if (m_v != 0x80000000) {
m_data[m_dataSize++] = m_v;
m_v = 0x80000000;
}
for (; (i < r) && (m_buffer[i] < '0'); ++i);
}
for (; i < r;) {
if (m_buffer[i] >= '0') {
m_v = m_v * 10 + m_buffer[i] - 48;
++i;
} else {
m_data[m_dataSize++] = m_v;
m_v = 0x80000000;
for (i = i + 1; (i < r) && (m_buffer[i] < '0'); ++i);
}
}
}
return m_data[m_dataOffset++];
}
| |
Topic archived. No new replies allowed.