', i)
if c == -1:
return -1
if o != -1 and o < c:
depth += 1
i = o + 4
else:
depth -= 1
i = c + 6
return i
for f in sys.argv[1:]:
c = io.open(f, encoding='utf-8').read()
pat = re.compile(r'
')
print('===', f.replace('\\', '/').split('/')[-1])
for m in pat.finditer(c):
name = m.group(1)
end = find_oj_section(c, m.start())
blk = c[m.start():end]
expl = blk.count('class="oj-explains"')
full = blk.count('class="prob-detail" onclick')
hw = blk.count('class="prob-detail homework"')
mark = 'OK' if (expl == 1 and full + hw == 5) else 'BAD'
print(' %-4s expl=%d full=%d homework=%d %s' % (name, expl, full, hw, mark))
print(' total homework-note count:', c.count('未提交 · 课后作业'))
print(' div balance:', c.count('
'),
'OK' if c.count('
') else 'MISMATCH')