提交了5次才过
// 有效代码
const exec = (line: string) => {
if (0 === (inputCount = (inputCount + 1) % 3)) {
const [msk, ip0] = outputs.splice(outputs.length - 2, outputs.length);
const ip1 = line;
const msks = msk.split(/\./).map(s => Number.parseInt(s, 10));
if (!mskReg.test(msks.reduce((a, b) => a + b.toString(2).padStart(8, "0"), ""))) {
return 1;
} else if (reg.test(ip0) && reg.test(ip1) && reg.test(msk)) {
const ip0s = ip0.split(/\./).map(s => Number.parseInt(s, 10));
const ip1s = ip1.split(/\./).map(s => Number.parseInt(s, 10));
for (let i = 0; i < 4; i++) {
if ((ip0s[i] & msks[i]) !== (ip1s[i] & msks[i])) {
return 2;
}
}
return 0;
} else {
return 1;
}
} else return line;
};
let inputCount = 0;
const part = "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
const reg = new RegExp(`^${new Array(4).fill(part).join("\\.")}$`);
const mskReg = /^1+0+?$/;
// ACM 模式八股文代码别看
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("line", (line: string) => (res => (res !== undefined ? outputs.push(`${res}`) : null))(exec(line)));
rl.on("close", () => outputs.forEach(res => console.log(res)));
const outputs: string[] = [];



京公网安备 11010502036488号