-
-
[原创] KCTF 2023 第一题 wp - 98k
-
发表于: 2023-9-2 16:36 2765
-
main 主要逻辑:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | if ( sscanf (input, "%lld-%lld" , &value1, &value2) == 2 ) { v10 = snprintf(temp, 13ui64, "%lld-%lld" , value1, value2); if ( v8 > 0 && v10 > 0 && v8 == v10 ) { while ( input[v3] == temp[v3] ) { if ( ++v3 >= v8 ) { if ( value1 > 0 && value2 > 0 && value1 <= value2 && value2 + value1 == 117738 ) { v11 = "Accepted!\n" ; if ( value1 * value2 == 3457897337i64 ) goto LABEL_28; } break ; } } } } LABEL_27: v11 = "Wrong answer!\n" ; LABEL_28: printf (v11); |
输入两个数以-
分隔,给了两数之和与两数之积、第一个数不大于第二个数,求解二次方程即可。或者直接 z3 解:
1 2 3 4 5 6 7 8 9 | from z3 import * x = Int ( 'x' ) y = Int ( 'y' ) s = Solver() s.add(x + y = = 117738 ) s.add(x * y = = 3457897337 ) assert s.check() = = sat print (s.model()) # 56101-61637 |
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: