fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int t;
  6. cin >> t;
  7. for (int i = 1; i <= t; ++i) {
  8. long long k;
  9. cin >> k;
  10. long long ans_m = 0, ans_n = 0;
  11. for (long long m = 1; m * m <= k; ++m) {
  12. if ((2*k - m - 1) % (2*m + 1) == 0) {
  13. long long n = (2*k - m - 1) / (2*m + 1);
  14. if (ans_m == 0 || abs(ans_n - ans_m) > abs(n - m)) {
  15. ans_n = n;
  16. ans_m = m;
  17. }
  18. }
  19. }
  20. if (ans_n == 0) {
  21. cout << -1 << " " << -1 << '\n';
  22. } else {
  23. cout << min(ans_n, ans_m) << " " << max(ans_n, ans_m) << '\n';
  24. }
  25. }
  26. return 0;
  27. }
Success #stdin #stdout 0.18s 5300KB
stdin
20
9
6
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
1000000000000
stdout
2 3
-1 -1
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000
999999 1000000