C9-10 · Ghép điểm từ hai tệp

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 2.5s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Tệp qt.csv mỗi dòng ma,diem_qt; tệp ck.csv mỗi dòng ma,diem_ck (thứ tự các mã có thể khác qt.csv). Theo thứ tự của qt.csv, với mỗi sinh viên in ma diem_hp loai, trong đó điểm học phần và loại tính bằng tinh_diem_hp, xep_loai của mục 5.7:

  • diem_hp = round(0.4 * diem_qt + 0.6 * diem_ck, 1), in đúng 1 chữ số thập phân;
  • loại A nếu diem_hp ≥ 8,5; B nếu ≥ 7,0; C nếu ≥ 5,5; D nếu ≥ 4,0; còn lại F (xếp loại trên điểm đã làm tròn).

Sinh viên không có trong ck.csv thì in ma THIEU DIEM CK. Mã có trong ck.csv mà không có trong qt.csv thì bỏ qua. Gợi ý: đọc ck.csv vào dict mã → điểm (mục 8.1); với tệp lớn, tìm tuần tự trong danh sách sẽ quá chậm.

Cách nộp trên hệ thống chấm. Hệ thống chỉ có một nguồn dữ liệu vào, nên nội dung hai tệp được ghép lần lượt, mỗi tệp có một dòng ghi số dòng ở trước: n rồi n dòng của qt.csv, sau đó k rồi k dòng của ck.csv (Phụ lục D, mẫu 3). Mỗi dòng tách bằng input().split(",") như dòng đọc từ tệp.

Dữ liệu vào

  • Dòng đầu: n. n dòng tiếp theo: nội dung qt.csv, mỗi dòng ma,diem_qt.
  • Dòng tiếp: k. k dòng tiếp theo: nội dung ck.csv, mỗi dòng ma,diem_ck.

Kết quả

n dòng theo thứ tự qt.csv: ma diem_hp loai hoặc ma THIEU DIEM CK.

Ràng buộc

  • 1 ≤ n ≤ 50 000; 0 ≤ k ≤ 50 000.
  • Mã gồm đúng 8 chữ số; trong mỗi tệp các mã đôi một khác nhau.
  • Điểm trong [0; 10], viết dạng số nguyên (8) hoặc có đúng một chữ số thập phân (8.0).

Ví dụ

Dữ liệu vào:

2
23010003,8.0
23010005,5.0
1
23010003,8.8

Kết quả:

23010003 8.5 A
23010005 THIEU DIEM CK

Giải thích ví dụ

  • 23010003: 0,4 × 8,0 + 0,6 × 8,8 = 8,48, làm tròn 1 chữ số được 8,5 → loại A. Nếu xếp loại trên 8,48 (chưa làm tròn) sẽ ra B — sai.
  • 23010005 không có trong ck.csv → 23010005 THIEU DIEM CK.

Nguồn trong sách: Bài C9-10, mục 9.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (***)


Đang tải...