trang chủ / đề bài / tellworld

Hai đường thẳng song song

Đề bài

Mô tả

Trên mặt phẳng toạ độ có n điểm, điểm thứ i có toạ độ (i,yi).

Hãy xác định xem có thể vẽ hai đường thẳng song song và không trùng nhau sao cho:

  • mỗi điểm trong n điểm đã cho nằm trên đúng một trong hai đường thẳng đó;
  • mỗi đường thẳng đi qua ít nhất một điểm trong n điểm.

Lưu ý rằng hai đường thẳng bắt buộc phải khác nhau: nếu tất cả n điểm cùng nằm trên một đường thẳng thì không thể chia chúng thành hai đường thoả mãn, vì khi đó một trong hai đường sẽ không chứa điểm nào.

Dữ liệu vào

  • Dòng đầu chứa số nguyên dương n là số điểm.
  • Dòng thứ hai chứa n số nguyên y1,y2,…,yn là tung độ của các điểm.

Dữ liệu ra

In ra Yes nếu có thể vẽ được hai đường thẳng thoả mãn yêu cầu, ngược lại in ra No.

Ràng buộc

  • 3≤n≤1000
  • −109≤yi≤109

Ví dụ

Input Output Giải thích
5
7 5 8 6 9
Yes Năm điểm là (1,7),(2,5),(3,8),(4,6),(5,9). Đường thẳng y=x+132 đi qua các điểm 1,3,5; đường thẳng y=x+82 song song với nó và đi qua các điểm 2,4. Hệ số góc ở đây là 12, không phải số nguyên.
5
-1 -2 0 0 -5
No Vẫn có thể phủ hết năm điểm bằng hai đường thẳng, nhưng không cách nào làm cho chúng song song với nhau.
5
1000000000 0 0 0 0
Yes Đường thẳng nằm ngang y=0 đi qua bốn điểm cuối, còn đường thẳng nằm ngang y=109 đi qua điểm đầu tiên. Hai đường này song song và không trùng nhau.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0