Submit | All submissions | Best solutions | Back to list |
EIUGRDSA2 - Tính điểm môn học |
Hãy viết chương trình tính điểm bài tập lập trình trên Spoj của môn CTDL>, với các yêu cầu sau:
- Khai báo cấu trúc dữ liệu Student với kiểu dữ liệu phù hợp trong phần Input
- Đọc dữ liệu danh sách bài tập, danh sách sinh viên, và danh sách những lần nộp bài
- Sinh viên có thể nộp bài làm nhiều lần cho một bài tập, chương trình lấy điểm cao nhất
- Không tính điểm bài tập nằm ngoài danh sách đã cho
- Xuất ra danh sách sinh viên theo mô tả phần Output.
Input
Dòng đầu tiên là ba số nguyên n, p, m lần lượt là số lượng sinh viên, số bài tập và tổng số lần nộp bài của tất cả sinh viên (n ≤ 105, p ≤ 100, m ≤ 2*105).
Dòng thứ 2 chứa n số nguyên ri là các mã số sinh viên (ri ≤ 109 , 0 ≤ i < n)
Dòng thứ 3 là p số nguyên Pi là các mã số bài tập (Pi ≤ 107 , 0 ≤ i < p)
m dòng tiếp theo, mỗi dòng gồm 3 số ni, pi, si lần lượt là mã số sinh viên, mã bài tập, số điểm, thể hiện kết quả của một lần nộp bài của một sinh viên (si ≤ 100).
Output
Gồm n dòng, mỗi dòng gồm mã số sinh viên, điểm trung bình, và số lần nộp bài hợp lệ cách nhau bởi 1 khoảng trắng. Kết quả sắp xếp theo điểm trung bình từ cao xuống thấp, số lần nộp bài từ thấp đến cao, và mã số sinh viên từ thấp lên cao. Điểm trung bình được làm tròn xuống tới hàng đơn vị.
Example
Input: 2 2 3 1 2 11 12 1 11 80 1 12 90 2 12 100 Output: 1 85 2 2 50 1
Added by: | Ha Minh Ngoc |
Date: | 2017-04-04 |
Time limit: | 1s-1.200s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: GOSU |