比赛 CSP2022普及组 评测结果 WWWWWWAWWW
题目名称 解密 最终得分 10
用户昵称 yrtiop 运行时间 0.178 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-10-29 15:02:01
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. typedef long long i64;
  3.  
  4. void work() {
  5. i64 n,a,b;
  6. scanf("%lld %lld %lld",&n,&a,&b);
  7. i64 c = n - a * b + 2;
  8. i64 val = c * c - 4ll * n;
  9. if(val < 0) {
  10. puts("NO");
  11. return ;
  12. }
  13. i64 t = (i64)std::sqrt(val);
  14. bool flag = false;
  15. for(i64 i = t - 5;i <= t + 5;++ i) {
  16. if(i * i == val) {
  17. t = i;
  18. flag = true;
  19. break ;
  20. }
  21. }
  22. if(!flag) {
  23. puts("NO");
  24. return ;
  25. }
  26. if((c - t) & 1) {
  27. puts("NO");
  28. return ;
  29. }
  30. printf("%lld %lld\n",(c - t) / 2ll,(c + t) / 2ll);
  31. return ;
  32. }
  33.  
  34. int main() {
  35. freopen("csp2022pj_decode.in","r",stdin);
  36. freopen("csp2022pj_decode.out","w",stdout);
  37. int T;
  38. scanf("%d",&T);
  39. while(T --)work();
  40. return 0;
  41. }