[Buổi 26][Vòng đời & operator][HW] Bài 2: Point Equality


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Point Equality

Bối cảnh

Hai Point object được xem là bằng nhau khi cả hai tọa độ x,y cùng bằng. Bài Easy luyện overload operator== để main có thể viết p1 == p2 theo đúng semantics tự nhiên của domain. Constructor nhận x,y và object giữ state; operator chỉ đọc, không thay đổi bất kỳ point nào.

Ở B26, constructor/operator/destructor phải được xem như một phần của semantics object chứ không chỉ là cú pháp. Constructor nên đưa object về representation chuẩn ngay từ đầu; operator đọc các object hợp lệ và trả kết quả có cùng invariant; destructor chỉ giải phóng tài nguyên thuộc ownership của chính object.

Yêu cầu

  1. Class Point với x,y.
  2. Parameterized constructor.
  3. operator==.
  4. Đọc hai point và in SAME/DIFFERENT.

Input

Bốn số nguyên.

Output

Một từ.

Ràng buộc

|coord|≤1e9.

Ví dụ 1

Input

1 2 1 2

Output

SAME

Giải thích

Hai point đều (1,2), cả x và y khớp nên operator== true, output SAME.

Mẫu này đồng thời kiểm tra invariant mà constructor/operator phải giữ. Kết quả không chỉ đúng về giá trị cuối mà còn phải được biểu diễn ở dạng canonical của class; các object nguồn vẫn giữ state riêng nếu phép toán được thiết kế theo value semantics.

Ví dụ 2

Input

1 2 2 1

Output

DIFFERENT

Giải thích

(1,2) và (2,1) có cùng tập số nhưng tọa độ tương ứng khác nhau, nên operator== false, output DIFFERENT.

Mẫu này đồng thời kiểm tra invariant mà constructor/operator phải giữ. Kết quả không chỉ đúng về giá trị cuối mà còn phải được biểu diễn ở dạng canonical của class; các object nguồn vẫn giữ state riêng nếu phép toán được thiết kế theo value semantics.

Thông tin học tập

  • Module: M07
  • Buổi: B26
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: constructor, operator==, object semantics
  • Giới hạn kiến thức: B01-B26
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo