CgovLyDorqHnrpflmaguY3BwIDog5q2k5paH5Lu25YyF5ZCrICJtYWluIiDlh73mlbDjgILnqIvluo/miafooYzlsIblnKjmraTlpITlvIDlp4vlubbnu5PmnZ/jgIIKLy8KCiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjb25pby5oPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8d2luZG93cy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1SID0gNDAwMDsKY29uc3QgaW50IEFSUkFZX1NJWkUgPSBNUiAqIDQ7CmNvbnN0IGludCBNSU5fSTMyID0gaW50KC0xZTkpOwoKc3RydWN0IEhBIHsKCWludCB2W01SXSA9IHsgMCB9OwoJaW50IGwgPSAwOwoJYm9vbCBidXJkZW4gPSBmYWxzZTsKCXZvaWQgc2V0KGxvbmcgbG9uZyBrKSB7CS8v5bCG6auY57K+5bqm5pWw5YC85Yid5aeL5YyW5Li6awoJCW1lbXNldCh2LCAwLCBBUlJBWV9TSVpFKTsKCQlsID0gMDsKCQl3aGlsZSAoayA+IDApIHsKCQkJdlsrK2xdID0gayAlIDEwOwoJCQlrIC89IDEwOwoJCX0KCX0KCgl2b2lkIHNldChzdHJpbmcgcykgey8v5Yid5aeL5YyW5Li6c3RyaW5nIHMKCQltZW1zZXQodiwgMCwgQVJSQVlfU0laRSk7CgkJbCA9IHMuc2l6ZSgpOwoJCWZvciAoaW50IGkgPSAxOyBpIDw9IGw7IGkrKykKCQkJdltpXSA9IHNbbCAtIGldIC0gJzAnOwoJfQoKCXZvaWQgcHJpbnQoaW50IFNUID0gMCwgaW50IHNlcGFyYXRlID0gTUlOX0kzMikgewoJCS8v6L6T5Ye66auY57K+5bqm55qE57uT5p6cCgkJaWYgKGJ1cmRlbikJcHJpbnRmKCItIik7CgkJZm9yIChpbnQgaSA9IGw7IGkgPj0gMTsgaS0tKSB7CgkJCWlmIChpICUgc2VwYXJhdGUgPT0gMCAmJiBzZXBhcmF0ZSAhPSBNSU5fSTMyICYmIGkgIT0gbCkJcHJpbnRmKCIsIik7CgkJCXByaW50ZigiJWQiLCB2W2ldKTsKCQkJU2xlZXAoU1QpOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CgoJSEEoc3RyaW5nIHMgPSAiMCIpIHsgc2V0KHMpOyB9Cn07Cgpib29sIG9wZXJhdG9yPT0oY29uc3QgSEEmIGEsIGNvbnN0IEhBJiBiKSB7CglpZiAoYS5sICE9IGIubCkJcmV0dXJuIGZhbHNlOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYS5sOyBpKyspIHsKCQlpZiAoYS52W2ldICE9IGIudltpXSkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIHRydWU7Cn0KCkhBIG9wZXJhdG9yKyhjb25zdCBIQSYgYSwgY29uc3QgSEEmIGIpIHsKCS8v5riF6Zu2IOiuoeeulyDlpI3kvY0KCUhBIGMoIjAiKTsKCgljLmwgPSBtYXgoYS5sLCBiLmwpOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYy5sOyBpKyspIHsKCQljLnZbaV0gKz0gYS52W2ldICsgYi52W2ldOwoJCWMudltpICsgMV0gPSBjLnZbaV0gLyAxMDsKCQljLnZbaV0gJT0gMTA7Cgl9CgoJaWYgKGMudltjLmwgKyAxXSkgYy5sKys7CglyZXR1cm4gYzsKfQoKSEEgb3BlcmF0b3IrKGNvbnN0IEhBJiBhLCBjb25zdCBpbnQmIGspIHsKCS8v5riF6Zu2IOiuoeeulyDlpI3kvY0KCUhBIGMoIjAiKTsKCUhBIGI7CgliLnNldChrKTsKCgljLmwgPSBtYXgoYS5sLCBiLmwpOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYy5sOyBpKyspIHsKCQljLnZbaV0gKz0gYS52W2ldICsgYi52W2ldOwoJCWMudltpICsgMV0gPSBjLnZbaV0gLyAxMDsKCQljLnZbaV0gJT0gMTA7Cgl9CgoJaWYgKGMudltjLmwgKyAxXSkgYy5sKys7CglyZXR1cm4gYzsKfQoKCmJvb2wgb3BlcmF0b3I8KGNvbnN0IEhBJiBhLCBjb25zdCBIQSYgYikgewoJaWYgKGEubCAhPSBiLmwpCXJldHVybiAoYS5sIDwgYi5sKTsKCWZvciAoaW50IGkgPSBhLmw7IGkgPj0gMTsgaS0tKQoJCWlmIChhLnZbaV0gIT0gYi52W2ldKQlyZXR1cm4gYS52W2ldIDwgYi52W2ldOwoJcmV0dXJuIGZhbHNlOwp9CgpIQSBvcGVyYXRvci0oY29uc3QgSEEmIGEsIGNvbnN0IEhBJiBiKSB7CglIQSBjKCIwIik7CgoJYy5sID0gYS5sOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYy5sOyBpKyspIHsKCQljLnZbaV0gKz0gYS52W2ldIC0gYi52W2ldICsgMTA7CgkJYy52W2kgKyAxXSA9IGMudltpXSAvIDEwIC0gMTsKCQljLnZbaV0gJT0gMTA7Cgl9CgoJd2hpbGUgKGMubCA+IDAgJiYgYy52W2MubF0gPT0gMCkJYy5sLS07CglyZXR1cm4gYzsKfQoKCkhBIG9wZXJhdG9yKihjb25zdCBIQSYgYSwgY29uc3QgbG9uZyBsb25nJiBrKSB7CglIQSBjKCIwIik7Cglsb25nIGxvbmcgdCA9IDA7CgljLmwgPSAwOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYS5sIHx8IGMudltpXSA+IDA7IGkrKykgewoJCWMubCsrOwoJCXQgPSBrICogYS52W2ldICsgYy52W2ldOwoJCWMudltpICsgMV0gPSB0IC8gMTA7CgkJYy52W2ldID0gdCAlIDEwOwoJfQoKCXJldHVybiBjOwoKfQoKSEEgb3BlcmF0b3IqKGNvbnN0IEhBJiBhLCBjb25zdCBIQSYgYikgewoJSEEgYygiMCIpOwoKCWMubCA9IGEubCArIGIubDsKCWZvciAoaW50IGkgPSAxOyBpIDw9IGEubDsgaSsrKQoJCWZvciAoaW50IGogPSAxOyBqIDw9IGIubDsgaisrKQoJCQljLnZbaSArIGogLSAxXSArPSBhLnZbaV0gKiBiLnZbal07CgoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYy5sOyBpKyspIHsKCQljLnZbaSArIDFdICs9IGMudltpXSAvIDEwOwoJCWMudltpXSAlPSAxMDsKCX0KCglpZiAoYy52W2MubF0gPT0gMCkJYy5sLS07CglyZXR1cm4gYzsKfQoKCkhBIG9wZXJhdG9yLyhjb25zdCBIQSYgYSwgY29uc3QgaW50JiBrKSB7CglIQSBjKCIwIiksIE5PVCgiMTA2MTEwOTU2NyIpOwoJTk9ULmJ1cmRlbiA9IHRydWU7CgljLmwgPSAwOwoKCWlmIChrID09IDApIHsKCQlyZXR1cm4gTk9UOwoJfQoKCWxvbmcgbG9uZyByZW0gPSAwOwoJZm9yIChpbnQgaSA9IGEubDsgaSA+PSAxOyBpLS0pIHsKCQlyZW0gPSByZW0gKiAxMCArIGEudltpXTsKCQljLnZbaV0gPSByZW0gLyBrOwoJCXJlbSAlPSBrOwoJCWlmIChjLmwgPT0gMCAmJiBjLnZbaV0gPiAwKQljLmwgPSBpOwoJfQoKCXJldHVybiBjOwp9CgpIQSBvcGVyYXRvci8oY29uc3QgSEEmIGEsIGNvbnN0IEhBJiBrKSB7CglIQSBjKCIwIiksIFooIjAiKSwgTk9UKCIxMDYxMTA5NTY3Iik7CglOT1QuYnVyZGVuID0gdHJ1ZTsKCWMubCA9IDA7CglpZiAoayA9PSBaKSB7CgkJcmV0dXJuIE5PVDsKCX0KCUhBIHJlbSgiMCIpOwoJZm9yIChpbnQgaSA9IGEubDsgaSA+PSAxOyBpLS0pIHsKCQlyZW0gPSByZW0gKiAxMCArIGEudltpXTsKCQl3aGlsZSAoIShyZW0gPCBrKSkgewoJCQlyZW0gPSByZW0gLSBrOwoJCQljLnZbaV0rKzsKCQl9CgkJaWYgKGMubCA9PSAwICYmIGMudltpXSA+IDApCWMubCA9IGk7Cgl9CgoJcmV0dXJuIGM7Cn0KCkhBIG9wZXJhdG9yJShjb25zdCBIQSYgYSwgY29uc3QgSEEmIGIpIHsKCXJldHVybiBhIC0gYSAvIGIgKiBiOwp9CgpIQSBvcGVyYXRvciUoY29uc3QgSEEmIGEsIGNvbnN0IGludCYgaykgewoJcmV0dXJuIGEgLSBhIC8gayAqIGs7Cn0KCkhBIGNhbGNtaW51cyhIQSB4LCBIQSB5KSB7CglpZiAoeCA9PSB5KSB7CgkJSEEgY250KCIwIik7CgkJcmV0dXJuIGNudDsKCX0KCWlmICh4IDwgeSkgewoJCUhBIGNudCA9IHkgLSB4OwoJCWNudC5idXJkZW4gPSB0cnVlOyAvLyDorr7nva7otJ/lj7cKCQlyZXR1cm4gY250OwoJfQoJcmV0dXJuIHggLSB5Owp9CgpIQSBpbnB1dFByb2Nlc3NpbmdfTk9UR1VJKCkgewoJc3RyaW5nIHMsIHQ7CgljaGFyIGNhbGNjaGFyOwoJY2luID4+IGNhbGNjaGFyOwoJY2luID4+IHMgPj4gdDsKCUhBIGEocyksIGIodCksIGNudDsKCXN3aXRjaCAoY2FsY2NoYXIpIHsKCWNhc2UgJysnOmNudCA9IGEgKyBiOyBicmVhazsKCWNhc2UgJy0nOmNudCA9IGNhbGNtaW51cyhhLCBiKTsgYnJlYWs7CgljYXNlICcqJzpjbnQgPSBhICogYjsgYnJlYWs7CgljYXNlICcvJzpjbnQgPSBhIC8gYjsgYnJlYWs7CgljYXNlICclJzpjbnQgPSBhICUgYjsgYnJlYWs7CglkZWZhdWx0OmJyZWFrOwoJfQoJcmV0dXJuIGNudDsKfQoKaW50IHRtcCA9IDE7CmJvb2wgdGVtcCA9IGZhbHNlOwoKdm9pZCBpbnB1dFByb2Nlc3NpbmdfR1VJKCkgewoJc3lzdGVtKCJjbHMiKTsKCXN0cmluZyBzID0gIiIsIHQgPSAiIjsKCWNoYXIgY2FsY2NoYXI7CgoJY2hhciBjID0gY2hhcigwKTsKCXdoaWxlICh0bXAgIT0gMykgewoJCWMgPSBfZ2V0Y2goKTsKCQlwcmludGYoIiVjIiwgYyk7CgkJaWYgKGludChjKSA+PSA0OCAmJiBpbnQoYykgPD0gNTcgJiYgdG1wID09IDEpIHsKCQkJcyArPSBjOwoJCX0KCQllbHNlIGlmIChpbnQoYykgPj0gNDggJiYgaW50KGMpIDw9IDU3ICYmIHRtcCA9PSAyKSB7CgkJCXQgKz0gYzsKCQkJdGVtcCA9IGZhbHNlOwoJCX0KCQllbHNlIGlmICgoYyA9PSAnKycgfHwgYyA9PSAnLScgfHwgYyA9PSAnKicgfHwgYyA9PSAnLycgfHwgYyA9PSAnJScpICYmICF0ZW1wKSB7CgkJCXRtcCArPSAxOwoJCQl0ZW1wID0gdHJ1ZTsKCQkJY2FsY2NoYXIgPSBjOwoJCX0KCQllbHNlIGlmIChjID09IGNoYXIoMTMpIHx8IGMgPT0gJz0nKSB7CgkJCWJyZWFrOwoJCX0KCQllbHNlIGlmIChjID09IGNoYXIoOCkpIHsKCQkJaWYgKHRtcCA9PSAxICYmICF0ZW1wKSB7CgkJCQlpZiAocy5zaXplKCkgPiAwKSB7CgkJCQkJcy5wb3BfYmFjaygpOwoJCQkJCXN5c3RlbSgiY2xzIik7CgkJCQkJY291dCA8PCBzOwoJCQkJfQoKCQkJfQoJCQllbHNlIGlmICh0bXAgPT0gMiAmJiAhdGVtcCkgewoJCQkJaWYgKHQuc2l6ZSgpID4gMCkgewoJCQkJCXQucG9wX2JhY2soKTsKCQkJCQlzeXN0ZW0oImNscyIpOwoJCQkJCWNvdXQgPDwgcyA8PCBjYWxjY2hhciA8PCB0OwoJCQkJfQoJCQkJZWxzZSB7CgkJCQkJdG1wIC09IDE7CgkJCQkJdGVtcCA9IGZhbHNlOwoJCQkJfQoJCQl9CgkJCWVsc2UgaWYgKHRlbXApIHsKCQkJCWNhbGNjaGFyID0gY2hhcigwKTsKCQkJCXRlbXAgPSBmYWxzZTsKCQkJCXRtcCAtPSAxOwoJCQkJc3lzdGVtKCJjbHMiKTsKCQkJCWNvdXQgPDwgczsKCQkJfQoJCX0KCQllbHNlIHsKCQkJY29udGludWU7CgkJfQoJfQoJaWYgKHMuc2l6ZSgpID09IDAgfHwgdC5zaXplKCkgPT0gMCB8fCBjYWxjY2hhciA9PSBjaGFyKDApKSB7CgkJcmV0dXJuOwoJfQoJSEEgYShzKSwgYih0KSwgY250OwoJc3dpdGNoIChjYWxjY2hhcikgewoJY2FzZSAnKyc6Y250ID0gYSArIGI7IGJyZWFrOwoJY2FzZSAnLSc6Y250ID0gY2FsY21pbnVzKGEsIGIpOyBicmVhazsKCWNhc2UgJyonOmNudCA9IGEgKiBiOyBicmVhazsKCWNhc2UgJy8nOmNudCA9IGEgLyBiOyBicmVhazsKCWNhc2UgJyUnOmNudCA9IGEgJSBiOyBicmVhazsKCWRlZmF1bHQ6YnJlYWs7Cgl9CglzeXN0ZW0oImNscyIpOwoJLy9jb3V0IDw8IHMgPDwgY2FsY2NoYXIgPDwgdDsKCWlmICghKGNudC5sIDw9IDEwKSkgewoJCWNudC5wcmludCgwLCAzKTsKCX0KCWVsc2UgewoJCWNudC5wcmludCgxMDAsIDMpOwoJfQp9CgppbnQgbWFpbigpIHsKCXdoaWxlICh0cnVlKSB7CgkJdG1wID0gMTsKCQl0ZW1wID0gZmFsc2U7CgkJaW5wdXRQcm9jZXNzaW5nX0dVSSgpOwoJCXdoaWxlICh0cnVlKSB7CgkJCXByaW50Zigi5oyJ5LiL5Zue6L2m6ZSu57un57utLEN0cmwrQ+S7pemAgOWHui4uLlxuIik7CgkJCWNoYXIgaCA9IF9nZXRjaCgpOwoJCQlpZiAoaCA9PSBjaGFyKDEzKSkgewoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKGggPT0gY2hhcigzKSkgewoJCQkJZXhpdCgwKTsKCQkJfQoJCX0KCX0KCXJldHVybiAwOwp9Ci8vU0xTSV9Db2Rl6IW+5riK56eR5oqACi8vUm1walh6SXdNVFBvaGI3bXVJcGY1Ym0vNWJlZQovLyDov5DooYznqIvluo86IEN0cmwgKyBGNSDmiJbosIPor5UgPuKAnOW8gOWni+aJp+ihjCjkuI3osIPor5Up4oCd6I+c5Y2VCi8vIOiwg+ivleeoi+W6jzogRjUg5oiW6LCD6K+VID7igJzlvIDlp4vosIPor5XigJ3oj5zljZUKCi8vIOWFpemXqOS9v+eUqOaKgOW3pzogCi8vICAgMS4g5L2/55So6Kej5Yaz5pa55qGI6LWE5rqQ566h55CG5Zmo56qX5Y+j5re75YqgL+euoeeQhuaWh+S7tgovLyAgIDIuIOS9v+eUqOWboumYn+i1hOa6kOeuoeeQhuWZqOeql+WPo+i/nuaOpeWIsOa6kOS7o+eggeeuoeeQhgovLyAgIDMuIOS9v+eUqOi+k+WHuueql+WPo+afpeeci+eUn+aIkOi+k+WHuuWSjOWFtuS7lua2iOaBrwovLyAgIDQuIOS9v+eUqOmUmeivr+WIl+ihqOeql+WPo+afpeeci+mUmeivrwovLyAgIDUuIOi9rOWIsOKAnOmhueebruKAnT7igJzmt7vliqDmlrDpobnigJ3ku6XliJvlu7rmlrDnmoTku6PnoIHmlofku7bvvIzmiJbovazliLDigJzpobnnm67igJ0+4oCc5re75Yqg546w5pyJ6aG54oCd5Lul5bCG546w5pyJ5Luj56CB5paH5Lu25re75Yqg5Yiw6aG555uuCi8vICAgNi4g5bCG5p2l77yM6Iul6KaB5YaN5qyh5omT5byA5q2k6aG555uu77yM6K+36L2s5Yiw4oCc5paH5Lu24oCdPuKAnOaJk+W8gOKAnT7igJzpobnnm67igJ3lubbpgInmi6kgLnNsbiDmlofku7YKCgkKCQ==

1 条评论

  • 1

信息

ID
949
时间
1000ms
内存
256MiB
难度
1
标签
递交数
367
已通过
94
上传者