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ủ

#2033 · Những Tuyến Đường Bị Lãng Quên

Bạn là một kỹ sư phần mềm làm việc cho Sở Giao thông Vận tải của một thành phố thông minh. Thành phố này có N địa điểm quan trọng và M tuyến đường hai chiều kết nối giữa các địa điểm đó. Mỗi tuyến đường thứ i nối liền địa điểm a_ib_i, đồng thời người dân sẽ mất một khoảng thời gian là c_i phút để di chuyển qua nó.

Hệ thống đường xá này đảm bảo rằng người dân luôn có cách để đi từ bất kỳ địa điểm nào đến bất kỳ địa điểm nào khác (đồ thị liên thông).

Hiện tại, ngân sách bảo trì đường bộ của thành phố đang bị thâm hụt nghiêm trọng. Thị trưởng quyết định phải cắt giảm chi phí bằng cách đóng cửa bớt một số tuyến đường.

Qua khảo sát, Sở Giao thông nhận thấy một thói quen của người dân thành phố thông minh: Họ luôn luôn sử dụng ứng dụng bản đồ (như Google Maps) để tìm và đi theo tuyến đường có thời gian ngắn nhất (Shortest Path) giữa điểm xuất phát và điểm đến. Nếu có nhiều lộ trình cùng đạt thời gian ngắn nhất, họ có thể đi bất kỳ lộ trình nào trong số đó.

Từ đó, Thị trưởng đưa ra một quyết định táo bạo: "Nếu một tuyến đường không bao giờ nằm trên bất kỳ một lộ trình ngắn nhất nào giữa bất kỳ cặp 2 địa điểm nào trong thành phố, tuyến đường đó là vô dụng và không ai thèm đi cả. Chúng ta sẽ đóng cửa những tuyến đường này!".

Nhiệm vụ của bạn là viết một chương trình phân tích bản đồ thành phố và đếm xem: Có bao nhiêu tuyến đường "bị lãng quên" sẽ bị đóng cửa theo chỉ thị của Thị trưởng?

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên N (số địa điểm, 2≤N≤100) và M (số tuyến đường, M≤1000).
  • M dòng tiếp theo, mỗi dòng chứa 3 số nguyên a_i, b_i, c_i, (1≤c_i≤1000) thể hiện một tuyến đường nối a_ib_i với thời gian di chuyển c_i.

Lưu ý: Đảm bảo không có đường cụt tự nối chính nó hay 2 đường nối cùng 1 cặp điểm.

Dữ liệu ra

In ra một số nguyên duy nhất là số lượng các tuyến đường không nằm trên bất kỳ đường đi ngắn nhất nào

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

# Tài khoản Kết suất Lúc nộp
1
J
JF1P @codewar2026_trteam34
3 ms 276 KB
1446 Bytes
27/05/2026
20:26
2
3 ms 408 KB
1038 Bytes
30/05/2026
11:17
3
K
KTLT3 @codewar2026_trteam32
4 ms 276 KB
1182 Bytes
27/05/2026
20:26
4
S
SLEEPY @codewar2026_trteam8
4 ms 360 KB
1141 Bytes
27/05/2026
20:43
5
C
Người máy dây code @codewar2026_trteam38
4 ms 400 KB
1106 Bytes
27/05/2026
20:50
6
6 ms 688 KB
872 Bytes
27/05/2026
21:01
7
L
C Legend @codewar2026_trteam61
10 ms 264 KB
1404 Bytes
27/05/2026
20:28
8
L
C Legend @codewar2026_trteam61
10 ms 264 KB
1419 Bytes
27/05/2026
20:23
9
L
C Legend @codewar2026_trteam61
10 ms 272 KB
1404 Bytes
27/05/2026
20:28
10
10 ms 352 KB
1215 Bytes
26/05/2026
14:35
11
W
woodpecker @codewar2026_trteam15
967 ms 3636 KB
457 Bytes
27/05/2026
21:11

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

Chưa có thảo luận nào cho bài này.

GỢI Ý & HƯỚNG DẪN

Giải thích ví dụ 1: Giả sử thành phố có 3 địa điểm (N=3)3 tuyến đường (M=3).

  • Đường 1: Nối điểm 12, mất 1 phút.
  • Đường 2: Nối điểm 13, mất 1 phút.
  • Đường 3: Nối điểm 23, mất 3 phút.

Phân tích hành vi người dân:

  • Người đi từ 1 đến 2: Đi thẳng đường 1 (mất 1 phút).
  • Người đi từ 1 đến 3: Đi thẳng đường 2 (mất 1 phút).
  • Người đi từ 2 đến 3: Thay vì đi thẳng đường số 3 mất tới 3 phút, Google Maps sẽ chỉ họ đi vòng qua điểm 1 (từ 2 đến 1 mất 1 phút, từ 1 đến 3 mất 1 phút → tổng cộng chỉ mất 2 phút).

Kết luận: Tuyến đường số 3 (nối điểm 23, dài 3 phút) hoàn toàn vô dụng vì không ai chọn đi nó cho bất kỳ hành trình nào. Do đó, chương trình cần in ra kết quả là 1 (có 1 tuyến đường bị đóng cửa)

Viết code