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

Diện tích tam giác gấp đôi

Công thức shoelace (công thức dây giày) tính diện tích một đa giác từ toạ độ các đỉnh. Với

C++Cơ bản15 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ủ đề

geometryshoelacecross-productentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Công thức shoelace (công thức dây giày) tính diện tích một đa giác từ toạ độ các đỉnh. Với tam giác, nhân đôi diện tích sẽ triệt tiêu mẫu số 2, nên toàn bộ phép tính chỉ còn số nguyên — đó là lý do các bài hình học tính toán thường hỏi diện tích gấp đôi thay vì diện tích.

Yêu cầu

Cho ba điểm A(x1, y1), B(x2, y2), C(x3, y3) với toạ độ nguyên. Hãy in ra diện tích gấp đôi của tam giác ABC, tức giá trị

D = |x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)|

D luôn là số nguyên. Nếu ba điểm thẳng hàng thì D = 0.

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 số nguyên là diện tích gấp đôi, không in diện tích, không in thêm chữ nào 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 là giá trị D — số nguyên gấp đôi diện tích tam giác, tính bằng giá trị tuyệt đối nên không bao giờ âm.

Ràng buộc

  • Toạ độ là số nguyên, |xi|, |yi| <= 1000; giá trị D nhỏ hơn 8 * 10^6 nên nằm gọn

trong kiểu int.

  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

0 0 4 0 0 3

Output

12

Ví dụ 2

Input

0 0 1 0 0 1

Output

1

Giải thích

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

ta có D = |0 * (0 - 3) + 4 * (3 - 0) + 0 * (0 - 0)| = |0 + 12 + 0| = 12, và diện tích tam giác là 12 / 2 = 6. Kết quả in ra:

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