cpp-341Đọc toàn bộ đề miễn phí

Kiểm tra ba điểm thẳng hàng

Ba điểm thẳng hàng khi diện tích tam giác tạo bởi chúng bằng không. Với toạ độ nguyên, điều

C++Cơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

geometrycross-productcollinearityentry-ramp

Kiến thức tiên quyết: cpp-basics, conditionals.

Nội dung đề bài

Mô tả bài toán

Ba điểm thẳng hàng khi diện tích tam giác tạo bởi chúng bằng không. Với toạ độ nguyên, điều đó tương đương tích có hướng của hai vector nối từ một đỉnh bằng 0. Đây là phép kiểm tra nền tảng của hình học tính toán: dựng đường thẳng, kiểm tra điểm nằm trên đoạn, xét giao nhau của hai đoạn đều dựa vào nó.

Yêu cầu

Cho ba điểm A(x1, y1), B(x2, y2), C(x3, y3). Hãy kiểm tra xem ba điểm có thẳng hàng hay không, tức là tích có hướng

cross = (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1)

có bằng 0 hay không. Nếu cross == 0 in YES, ngược lại in NO.

Quy ước nộp bài

Nộp chương trình solution.cpp đọc dữ liệu từ stdin và in kết quả ra stdout. Chỉ in đúng một dòng YES hoặc NO (chữ in hoa), không in thêm gì khác.

Input

  • Một dòng duy nhất gồm sáu số nguyên x1 y1 x2 y2 x3 y3

(-1000 <= xi, yi <= 1000), cách nhau bởi dấu cách.

Output

In ra một dòng duy nhất: YES nếu ba điểm thẳng hàng, NO nếu không. Hai xâu in bằng chữ in hoa, không in thêm gì khác.

Ràng buộc

  • Toạ độ nguyên, |xi|, |yi| <= 1000, nên cross có độ lớn dưới 8 * 10^6 và nằm gọn

trong kiểu int.

  • Các điểm có thể trùng nhau; hai điểm trùng nhau luôn thẳng hàng với điểm còn lại.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

0 0 1 1 2 2

Output

YES

Ví dụ 2

Input

0 0 1 0 0 1

Output

NO

Giải thích

Với dữ liệu vào:

ta có cross = (1 - 0) * (2 - 0) - (1 - 0) * (2 - 0) = 2 - 2 = 0, nên kết quả là:

Với dữ liệu vào:

thì cross = (1) * (1) - (0) * (0) = 1, khác 0, nên kết quả là NO.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Góp ý & báo lỗi bài tập

Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.

Nhóm Zalo