Giải phương trình

Xem dạng PDF

Gửi bài giải

Điểm: 15,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 250M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Output Only, Pascal, PyPy, Python

Cho phương trình có dạng ~ax^2 + bx + c = y~ với ~a, b, c~ là các số tự nhiên.

Cho t phương trình như trên, bạn hãy kiểm tra xem phương trình có nghiệm không âm hay không.

Input Specification

  • Dòng đầu ghi số nguyên dương t là số lượng truy vấn
  • T dòng tiếp theo, mỗi dòng ghi 4 số tự nhiên ~a, b, c, y~ ~(a, b, c \leq 50, y \leq 10^{18})~

Output Specification

  • In ra t dòng, nếu tồn tại số x thì in ra x, còn không in ra "PTVN"

Sample Input

2
2 5 1 19
2 5 18 1

Sample Output

2
PTVN

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    anhtuan2k12  đã bình luận lúc 10, Tháng 8, 2025, 12:33

    include <iostream>

    using namespace std;

    typedef unsigned long long ull;

    int main() { int t; cin >> t; while(t--) { ull a, b, c, y; cin >> a >> b >> c >> y; ull left = 0, right = 2000000000; bool found = false; ull ans = 0; while(left <= right) { ull mid = left + (right - left) / 2; int128 val = (int128)a * mid * mid + (__int128)b * mid + c; if(val == y) { found = true; ans = mid; break; } else if(val < y) { left = mid + 1; } else { right = mid -1; } } if(found) cout << ans << "\n"; else cout << "PTVN\n"; } return 0; }