const fs=require('fs'); const files={2022:'wiaa-21-22.txt',2023:'wiaa-22-23.txt',2024:'wiaa-23-24.txt',2025:'wiaa-24-25.txt',2026:'wiaa-25-26.txt'}; const dir=process.argv[2]; const out=[]; const toSec=m=>{const [a,b]=m.split(':');return +a*60+ +b;}; const isMark=s=>/^\d:\d\d\.\d\d$/.test(s); for(const [yr,f] of Object.entries(files)){ const L=fs.readFileSync(dir+'/'+f,'latin1').replace(/\0/g,'').split(/\r?\n/).map(s=>s.trim()); const seen=new Set(); for(let i=0;i{const k=yr+h[1]+h[2]+name; if(seen.has(k))return; seen.add(k); out.push({year:+yr,sex:h[1],cls:h[2],place:+place,name,grade:String(grade).trim(),school:school.trim(),mark,sec:toSec(mark)});}; for(let j=i+1;j{const k=r.year+' '+r.sex+' '+r.cls;c[k]=(c[k]||0)+1});console.log(c);