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

Điểm nào gần gốc toạ độ hơn

Muốn biết điểm nào gần gốc toạ độ O(0, 0) hơn, ta so sánh khoảng cách từ chúng tới O.

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

geometrysquared-distancecomparisonentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Muốn biết điểm nào gần gốc toạ độ O(0, 0) hơn, ta so sánh khoảng cách từ chúng tới O. Vì căn bậc hai là hàm tăng, so sánh khoảng cách cho cùng kết quả với so sánh bình phương khoảng cách — và bình phương khoảng cách của một điểm nguyên luôn là số nguyên, nên ta tránh được hoàn toàn số thực và sai số làm tròn.

Yêu cầu

Cho hai điểm P1(x1, y1) và P2(x2, y2) với toạ độ nguyên. Hãy so sánh d1 = x1 * x1 + y1 * y1 với d2 = x2 * x2 + y2 * y2 và in ra:

  • 1 nếu P1 gần gốc toạ độ hơn (d1 < d2),
  • 2 nếu P2 gần gốc toạ độ hơn (d2 < d1),
  • 0 nếu hai điểm cách gốc toạ độ như nhau (d1 == d2).

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. In đúng một số nguyên 1, 2 hoặc 0 trên một dòng duy nhất.

Input

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

(-1000 <= x1, y1, x2, y2 <= 1000), cách nhau bởi dấu cách.

Output

In ra đúng một số nguyên: 1, 2 hoặc 0 theo quy ước ở trên. Chỉ in một số trên một dòng, không in thêm chữ nào khác.

Ràng buộc

  • Toạ độ nguyên, |xi|, |yi| <= 1000, nên d1, d2 nhỏ hơn 2 * 10^6 và vừa với kiểu

int.

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

Ví dụ 1

Input

3 4 1 1

Output

2

Ví dụ 2

Input

1 1 3 4

Output

1

Giải thích

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

ta có d1 = 9 + 16 = 25 và d2 = 1 + 1 = 2. Vì d2 < d1 nên điểm thứ hai gần gốc toạ độ hơn, kết quả là:

Với dữ liệu vào 2 3 3 2 thì d1 = 4 + 9 = 13 và d2 = 9 + 4 = 13, hai giá trị bằng nhau nên kết quả là 0.

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