Không hỗ trợ Mobile

Chế độ luyện tập yêu cầu môi trường màn hình lớn để làm bài và chống gian lận hiệu quả. Vui lòng truy cập bằng máy tính (Desktop/Laptop) để tiếp tục thao tác.

Quay lại trang chủ

#1503 · OLP 2022 KC - Cắt dán

Giờ học thủ công của trường mẫu giáo, cô cho các bé tập cắt dán hình. Bài học hôm nay bé sẽ cắt dán một hình tứ giác lồi theo hình mẫu và dán vào vị trí bất kỳ trên bài, mỗi bé sẽ dán 1 hình là kết quả bài học của mình.

17012293418771.png

Bài làm đúng là bài tạo được hình tứ giác bằng đúng như hình mẫu. Tuy nhiên do các bé còn nhỏ nên các hình tạo ra lại được dán ở các vị trí khác nhau và có thể bị xoay so với hình gốc. Bằng cách thực hiện các phép xoay và tịnh tiến trong không gian 2 chiều, bạn hãy xác định xem những hình nào được cắt đúng với hình mẫu.

Dữ liệu vào

  • Dòng đầu tiên ghi 8 số nguyên x_1, y_1, x_2, y_2, x_3, y_3, x_4, y_4 xác định tọa độ bốn đỉnh của hình mẫu, các đỉnh được liệt kê theo chiều kim đồng hồ; giá trị tuyệt đối các tọa độ không vượt quá 10^6.
  • Dòng tiếp theo ghi số nguyên dương t - số lượng bài làm cần xem xét (0 \leq t \leq 10^6)
  • t dòng tiếp theo, mỗi dòng ghi 8 số nguyên là tọa độ các đỉnh của một hình trong bài làm được theo quy cách như hình mẫu; giá trị tuyệt đối các tọa độ không vượt quá 10^6.

Các số trên một dòng ghi cách nhau một dấu cách.

Dữ liệu ra

Đưa ra thiết bị xuất chuẩn một số nguyên – số hình đã cắt đúng.

BẢNG TỔNG QUAN KẾT QUẢ

# Tài khoản Kết suất Lúc nộp
1
H
Võ Duy Huỳnh @2011064683
1 ms 220 KB
1187 Bytes
24/12/2023
03:18
2
T
Đoàn Chí Tân @2180607068
1 ms 220 KB
2060 Bytes
02/10/2025
14:45
3
1 ms 220 KB
2161 Bytes
28/12/2023
22:04
4
1 ms 280 KB
800 Bytes
14/05/2024
16:50
5
1 ms 280 KB
1317 Bytes
29/11/2023
17:50
6
L
Mai Dương Long @2380601236
1 ms 280 KB
1364 Bytes
11/06/2024
09:57
7
H
Võ Thanh Hà @2280600789
1 ms 280 KB
1702 Bytes
14/05/2024
06:39
8
T
Phạm Văn Trà @2280603325
1 ms 288 KB
842 Bytes
14/10/2024
04:36
9
Lê Duy Hải @2280600799
1 ms 296 KB
1362 Bytes
30/11/2023
05:19
10
1 ms 300 KB
934 Bytes
30/11/2023
03:36
11
1 ms 300 KB
1029 Bytes
30/11/2023
03:35
12
1 ms 300 KB
1726 Bytes
26/02/2025
20:30
13
Lê Duy Hải @2280600799
1 ms 300 KB
1931 Bytes
30/11/2023
05:16
14
1 ms 300 KB
2181 Bytes
23/12/2025
22:37
15
1 ms 300 KB
2183 Bytes
02/12/2023
07:09
16
1 ms 304 KB
1501 Bytes
21/01/2024
05:29
17
1 ms 308 KB
934 Bytes
30/11/2023
03:37
18
2 ms 280 KB
1205 Bytes
16/04/2024
18:23
19
2 ms 284 KB
1379 Bytes
21/01/2024
04:09
20
H
2 ms 300 KB
1195 Bytes
30/11/2023
05:08

LỊCH SỬ CÁ NHÂN

Vui lòng đăng nhập để xem lịch sử làm bài của bạn.

THẢO LUẬN BÀI TOÁN

1 năm trước

cmt nay` khong phai spoil thuat

include <bits/stdc++.h>

using namespace std;

define pii pair<int, int>

define piiii = pair<pii, pii>

define fi first

define se second

define mp make_pair

double distance(int x1, int y1, int x2, int y2) {

return sqrt((x1 - x2) * (x1 - x2) * 1. + (y1 - y2) * (y1 - y2));

}

vector cal(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {

vector<double> temp;
double  d12 = distance(x1, y1, x2, y2),
        d23 = distance(x2, y2, x3, y3),
        d34 = distance(x3, y3, x4, y4),
        d41 = distance(x4, y4, x1, y1),
        d13 = distance(x1, y1, x3, y3),
        d24 = distance(x2, y2, x4, y4);
temp.push_back(d12);
temp.push_back(d23);
temp.push_back(d34);
temp.push_back(d41);
temp.push_back(d13);
temp.push_back(d24);
sort(temp.begin(), temp.end());
return temp;

}

int main() {

int x1, y1, x2, y2, x3, y3, x4, y4;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
vector<double> vec = cal(x1, y1, x2, y2, x3, y3, x4, y4);
int a1, b1, a2, b2, a3, b3, a4, b4;
int T; cin >> T;
int cnt = 0;
while (T--) {
    cin >> a1 >> b1 >> a2 >> b2 >> a3 >> b3 >> a4 >> b4;
    vector<double> temp = cal(a1, b1, a2, b2, a3, b3, a4, b4);
    if (temp == vec) cnt++;
}
cout << cnt;
return 0;

}

Vào thảo luận 0 Phản hồi
Viết code