Gửi bài giải

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

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho ~n~ điểm trên mặt phẳng ~Oxy~ và tham số ~p~.

Hãy xác định xem, có tồn tại một đường thẳng sao cho có ít nhất ~p~ phần trăm các điểm trong ~n~ điểm được cho nằm chính xác trên đường thẳng đó hay không.

Input

  • Dòng đầu gồm số nguyên dương ~t~ miêu tả số bộ test.
  • Mỗi bộ test bao gồm:
    • Dòng đầu gồm số nguyên dương ~n~.
    • Dòng thứ hai gồm số nguyên dương ~p~.
    • ~n~ dòng sau, mỗi dòng gồm hai số ~x_i,y_i~ miêu tả tọa độ của điểm thứ ~i~.

Đảm bảo rằng không có hai điểm nào trùng khớp.

Output

  • Với mỗi bộ test, nếu tồn tại đường thẳng thỏa mãn thì in ra "possible", ngược lại in ra "impossible".

Constraints .

  • ~1 \le t \le 5~.
  • ~1 \le n \le 10^5~.
  • ~35 \le p \le 100~
  • Tọa độ của các điểm đều là số nguyên trong khoảng ~[-10^9,10^9]~.

Sample Input 1

2
5
55
0 0
10 10
10 0
0 10
3 3
5
45
0 0
10 10
10 0
0 10
3 4

Sample Output 1

possible
impossible

Explanation 1

Imgur

Ở ví dụ ~1~, tồn tại đường thẳng đi qua (ít nhất) ~3~ điểm trong số ~5~ điểm trên.

Imgur

Ở ví dụ ~2~, không tồn tại đường thẳng nào đi qua nhiều hơn hoặc bằng ~45\%~ số điểm.


Bình luận

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



  • 2
    YougiTuber  đã bình luận lúc 2, Tháng 7, 2025, 6:47

    Spoil ⚠️

    Dựa vào ~p \ge 35~

    Xác suất chọn ~2~ điểm bất kỳ mà nó thuộc đường thẳng ~L~ kết quả là ~\frac{35}{100} \cdot \frac{35}{100} \approx 12.25\%~

    Suy ra xác suất chọn ~2~ điểm mà không thuộc đường thẳng đó là ~87.75\%~

    Ta có thể thử các cặp điểm ngẫu nhiên khoảng ~30~ lần, xác suất để không tìm được ~2~ điểm thuộc đường thẳng ~L~ là

    $$(0.8775)^{30} \approx 2\%$$

    Sau đó thử lại trong tập ~n~ điểm, có đủ ít nhất ~p\%~ số điểm thuộc đường thẳng đó hay không

    Nếu sau khi thử nhiều lần ngẫu nhiên mà không tìm ra, in ra impossible