Cấu trúc sinh viên

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Hãy xây dựng một cấu trúc SinhVien gồm các thông tin: Họ tên (chuỗi có dấu cách), Tuổi (số nguyên), Điểm GPA (số thực). Viết chương trình nhập thông tin cho 1 sinh viên và in ra màn hình.

Input:

Dòng 1: Họ và tên sinh viên.

Dòng 2: Tuổi.

Dòng 3: Điểm GPA.

Output:

In ra chuỗi "Ten: [Ten], Tuoi: [Tuoi], GPA: [GPA]" (GPA làm tròn 2 chữ số thập phân).


Ví dụ

Input:
Nguyen Van A 
20 
3.567
Output:
Ten: Nguyen Van A, Tuoi: 20, GPA: 3.57

Tổng hai phân số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng cấu trúc PhanSo gồm tử số và mẫu số (số nguyên). Nhập vào 2 phân số, tính tổng của chúng và in ra kết quả dưới dạng tối giản.


Input:

Dòng 1: Tử số và mẫu số của phân số thứ nhất.

Dòng 2: Tử số và mẫu số của phân số thứ hai.

Output:

Phân số tổng đã tối giản dạng "tu/mau".


Ví dụ

Input:
1 2 
1 3
Output:
5/6

Khoảng cách giữa hai điểm

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng cấu trúc Point gồm tọa độ x và y (số thực). Tính khoảng cách giữa 2 điểm A và B trong hệ tọa độ Oxy.


Input:

Dòng 1: Tọa độ x y của điểm A.

Dòng 2: Tọa độ x y của điểm B.

Output:

Khoảng cách giữa hai điểm, làm tròn 4 chữ số thập phân.


Ví dụ

Input:
0 0 3 4
Output:
5.0000

Tìm sinh viên điểm cao nhất

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho danh sách N sinh viên với thông tin: mã sinh viên (số nguyên), tên (chuỗi không khoảng trắng), điểm (số thực). Tìm sinh viên có điểm cao nhất. Nếu điểm bằng nhau, lấy người có mã sinh viên nhỏ hơn.


Input:

Dòng 1: Số nguyên N.

N dòng tiếp theo: Mã SV, Tên, Điểm.

Output:

Thông tin sinh viên điểm cao nhất (Mã Tên Điểm).


Ví dụ

Input:
3 
1 An 8.5 
2 Binh 9.0 
3 Cuong 9.0
Output:
2 Binh 9.0

Số phức

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct SoPhuc gồm phần thực và phần ảo. Tính tổng và tích của 2 số phức.


Input:

Dòng 1: Phần thực và phần ảo số thứ nhất.

Dòng 2: Phần thực và phần ảo số thứ hai.

Output:

Dòng 1: Tổng 2 số phức (dạng a + bi).

Dòng 2: Tích 2 số phức (dạng a + bi).


Ví dụ

Input:
1 2 
3 4
Output:
4 + 6i 
-5 + 10i

Sắp xếp sinh viên theo gpa

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho danh sách sinh viên. Hãy sắp xếp danh sách theo thứ tự điểm GPA giảm dần.


Input:

Dòng 1: Số nguyên N.

N dòng tiếp theo: Tên (không dấu cách), GPA.

Output:

Danh sách đã sắp xếp, mỗi sinh viên một dòng.


Ví dụ

Input:
3 
Lan 7.5 
Diep 8.0 
Hung 6.5
Output:
Diep 8.0 
Lan 7.5 
Hung 6.5

Tính diện tích tam giác (6)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tính chu vi và diện tích tam giác (dùng công thức ½ * a * h)

Mô tả: Nhập độ dài 3 cạnh của tam giác và chiều cao tương ứng với đáy. Tính chu vi và diện tích (dùng công thức diện tích tam giác:

Input: 4 dòng:

Dòng 1: cạnh đáy: a

Dòng 2: cạnh thứ 2: b

Dòng 3: cạnh thứ 3: c

Dòng 4: chiều cao

h ứng với cạnh đáy

Output: 2 dòng:

Dòng 1: Chu vi tam giác (2 chữ số thập phân)

Dòng 2: Diện tích tam giác (2 chữ số thập phân)

Input:
6
5
4
3
Output:
15.00
9.00

Tính tổng lương nhân viên

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Struct NhanVien gồm: Tên (chuỗi), Lương Cơ Bản (nguyên), Thưởng (nguyên). Tính tổng thực lĩnh (Lương Cơ Bản + Thưởng) của tất cả nhân viên.


Input:

Dòng 1: N (số lượng nhân viên).

N dòng tiếp theo, mỗi dòng: Tên LuongCoBan Thuong.

Output:

Tổng số tiền công ty phải trả.


Ví dụ

Input:
2 
A 1000 200 
B 2000 500
Output:
3700

Phép chia phân số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Nhập 2 phân số. Thực hiện phép chia phân số 1 cho phân số 2 và in kết quả tối giản.


Input:

2 dòng, mỗi dòng gồm tử số và mẫu số.

Output:

Kết quả phép chia tối giản dạng a/b.


Ví dụ

Input:
1 2 3 4
Output:
2/3

Quản lý sách

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Struct Sach gồm: TenSach (chuỗi, có thể có dấu cách), TacGia (chuỗi), GiaTien (nguyên). Tìm quyển sách có giá tiền thấp nhất.


Input:

Dòng 1: Số nguyên N.

N lần nhập tiếp theo: Mỗi lần nhập gồm 3 dòng (Tên sách, Tác giả, Giá).

Output:

Tên quyển sách rẻ nhất.


Ví dụ

Input:
2 
Lap trinh C 
Giao su X 
50000 
Tin hoc co so 
Thay Y 
30000
Output:
Tin hoc co so

Diện tích hình chữ nhật (struct)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Struct HinhChuNhat gồm ChieuDai và ChieuRong. Nhập N hình chữ nhật, tìm diện tích của hình có diện tích lớn nhất.


Input:

Dòng 1: Số nguyên N.

N dòng tiếp theo: mỗi dòng là dài và rộng.

Output:

Diện tích lớn nhất tìm được.


Ví dụ

Input:
3 2 3 5 5 4 6
Output:
25

Chênh lệch thời gian

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Struct Time gồm giờ, phút, giây. Nhập 2 mốc thời gian, tính khoảng cách giữa chúng theo giây.


Input:

Dòng 1: h1 m1 s1.

Dòng 2: h2 m2 s2.

Output:

Số giây chênh lệch (giá trị tuyệt đối).


Ví dụ

Input:
1 0 0 1 1 5
Output:
65

Tìm kiếm sinh viên theo thành phố

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Struct SinhVien gồm Tên và ThanhPho (không khoảng trắng). Nhập danh sách và một tên thành phố cần tìm. Liệt kê tên các sinh viên ở thành phố đó.


Input:

Dòng 1: Số nguyên N.

N dòng tiếp theo: Tên ThanhPho.

Dòng cuối: Tên thành phố cần tìm.

Output:

Tên các sinh viên tìm thấy, mỗi tên 1 dòng. Nếu không có ai in "Khong tim thay".


Input:
3 
Nam HaNoi 
Bac SaiGon 
Trung HaNoi 
HaNoi
Output:
Nam 
Trung

Hàm hủy (destructor)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Message lưu trữ một nội dung tin nhắn (string).

Hàm tạo: In ra "Khoi tao: " + nội dung.

Hàm hủy: In ra "Huy: " + nội dung. Viết chương trình nhập vào một chuỗi, tạo đối tượng trong một phạm vi hẹp (trong cặp ngoặc {}) để thấy hàm hủy được gọi tự động.

Đầu vào:

Một dòng chứa nội dung tin nhắn (không khoảng trắng).

Đầu ra:

Dòng 1: Thông báo từ hàm tạo.

Dòng 2: Thông báo từ hàm hủy.

Ràng buộc:

Chuỗi không quá 100 ký tự.

Ví dụ:

Input:
Hello
Output:
Khoi tao: Hello 
Huy: Hello

Cộng số phức (operator+)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct SoPhuc gồm phần thực và phần ảo. Sử dụng hàm tạo để khởi tạo. Nạp chồng toán tử + để cộng hai số phức (thực cộng thực, ảo cộng ảo).

Đầu vào:

Dòng 1: Phần thực và ảo của số A.

Dòng 2: Phần thực và ảo của số B.

Đầu ra:

Số phức tổng dạng: Thuc Ao (cách nhau bởi dấu cách).

Ràng buộc:

Giá trị là số nguyên.

Ví dụ:

Input:
1 2 3 4
Output:
4 6

So sánh sinh viên (operator<)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct SinhVien gồm Mã (string) và GPA (float). Nạp chồng toán tử < để so sánh hai sinh viên dựa trên GPA. Nếu GPA bằng nhau thì so sánh Mã theo thứ tự từ điển.

Đầu vào:

Dòng 1: N (số lượng sinh viên).

N dòng tiếp theo: Mã và GPA.

Đầu ra:

Danh sách sinh viên sau khi sắp xếp tăng dần theo tiêu chí đã định nghĩa (làm tròn lấy 1 chữ số sau phần thập phân).

Ràng buộc:

1 <= N <= 100.

Ví dụ:

Input:
2 
B2001 3.5 
A1001 3.5
Output:
A1001 3.5 B2001 3.5

Nhập xuất điểm (operator>> và operator<<)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Diem2D gồm tọa độ x, y. Nạp chồng toán tử nhập (>>) và xuất (<<) để có thể dùng cin >> p và cout << p một cách trực tiếp. Định dạng xuất là: (x, y).


Đầu vào:

Một dòng chứa 2 số nguyên x và y.

Đầu ra:

In ra tọa độ theo định dạng (x, y).

Ràng buộc:

x, y kiểu int.


Ví dụ:

Input:
5 10
Output:
(5, 10)

Nhập xuất đơn thức (nạp chồng cin, cout)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct DonThuc gồm hệ số (số thực) và số mũ (số nguyên).

Nạp chồng toán tử >> để nhập hệ số và số mũ.

Nạp chồng toán tử << để in ra đơn thức theo định dạng: heSo*x^soMu.

Lưu ý: In ra các hệ số của đơn thức luôn lấy 1 chữ số sau phần thập phân

Đầu vào:

Một dòng chứa hệ số và số mũ.

Đầu ra:

Chuỗi biểu diễn đơn thức.

Ràng buộc:

Số mũ >= 0.

Ví dụ:

Input:
5.5 2
Output:
5.5*x^2

Khoảng cách (hàm tạo)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Diem gồm x, y. Viết hàm tạo có tham số để khởi tạo tọa độ. Viết phương thức tính khoảng cách từ điểm hiện tại tới gốc tọa độ (0,0).


Đầu vào:

Dòng 1: N (số điểm).

N dòng sau: x y.

Đầu ra:

Khoảng cách của từng điểm tới gốc tọa độ (làm tròn 2 chữ số thập phân).

Ràng buộc:

-1000 <= x, y <= 1000.


Ví dụ:

Input:
2 
3 4 
0 1
Output:
5.00 1.00

Hiệu thời gian (operator-)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct ThoiGian gồm gio, phut, giay. Nạp chồng toán tử - để tính khoảng cách giữa 2 mốc thời gian (trả về tổng số giây chênh lệch).


Đầu vào:

Dòng 1: gio phut giay (thời điểm 1).

Dòng 2: gio phut giay (thời điểm 2).

Đầu ra:

Số giây chênh lệch tuyệt đối giữa 2 thời điểm.

Ràng buộc:

Thời gian hợp lệ (0 <= gio <= 23, 0 <= phut, giay <= 59).


Ví dụ:

Input:
1 0 0 
1 1 30
Output:
90

Diện tích hình chữ nhật (operator>)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct HinhChuNhat gồm dai, rong. Viết hàm tạo. Nạp chồng toán tử > để so sánh diện tích của 2 hình chữ nhật.

Đầu vào:

Dòng 1: dai rong (hình 1).

Dòng 2: dai rong (hình 2).

Đầu ra:

In ra "Hinh 1 lon hon" nếu diện tích hình 1 > hình 2, ngược lại in "Hinh 1 khong lon hon".

Ràng buộc:

Kích thước là số nguyên dương.

Ví dụ:

Input:
4 5 
2 8
Output:
Hinh 1 lon hon

Tích vô hướng (operator*)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Vector2D gồm x, y. Nạp chồng toán tử * để tính tích vô hướng của 2 vectơ (x1x2 + y1y2).

Đầu vào:

Dòng 1: x1 y1.

Dòng 2: x2 y2.

Đầu ra:

Giá trị tích vô hướng.

Ràng buộc:

Giá trị tọa độ kiểu long long.

Ví dụ:

Input:
1 2 
3 4
Output:
11

Nhập xuất hỗn số (nạp chồng cin, cout)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct HonSo gồm phần nguyên, tử số, mẫu số.


Nạp chồng toán tử >> để nhập 3 thành phần theo thứ tự: nguyên, tử, mẫu.

Nạp chồng toán tử << để in ra hỗn số theo định dạng: phannguyen(tuso/mau_so).

Đầu vào:

Một dòng chứa 3 số nguyên dương: phần nguyên, tử số, mẫu số.

Đầu ra:

Biểu diễn hỗn số.

Ràng buộc:

Mẫu số khác 0. Các giá trị trong khoảng int.


Ví dụ:

Input:
3 1 2
Output:
3(1/2)

Nhập xuất tài khoản ngân hàng (nạp chồng cin, cout)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct TaiKhoan gồm Số tài khoản (chuỗi) và Số dư (số nguyên long long).

Nạp chồng toán tử >> để nhập Số tài khoản và Số dư.

Nạp chồng toán tử << để in ra thông báo số dư theo định dạng: "Tai khoan: [SoTK] | So du: [SoDu] VND".

Đầu vào:

Dòng 1: Số tài khoản (không chứa khoảng trắng).

Dòng 2: Số dư.

Đầu ra:

Chuỗi thông báo định dạng.

Ràng buộc:

Số dư >= 0.

Ví dụ:

Input:
0123456789 
5000000
Output:
Tai khoan: 0123456789 | So du: 5000000 VND

Máy tính phân số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Mô tả: Xây dựng cấu trúc PhanSo gồm tử số và mẫu số. Hãy thực hiện các phép tính cộng, trừ, nhân, chia cho 2 phân số và in kết quả dưới dạng tối giản. Đặc biệt, chương trình phải xử lý được dấu âm (ví dụ mẫu số âm phải chuyển dấu lên tử) và rút gọn phân số sau mỗi phép tính.


Yêu cầu kỹ thuật:

  1. Nạp chồng toán tử nhập >> và xuất << .

  2. Nạp chồng các toán tử + , - , * , /.

  3. Tự động rút gọn phân số khi khởi tạo hoặc sau khi tính toán.


Dữ liệu vào:

• Dòng duy nhất chứa 4 số nguyên a, b, c, d lần lượt là tử và mẫu của phân số thứ nhất, tử và mẫu của phân số thứ hai (b, d ‡ 0).

Giá trị: -10^9 <= a, b, c, d <= 10^9

Dữ liệu ra:

• 4 dòng lần lượt là kết quả của: Tổng, Hiệu, Tích, Thương.


Ví dụ:

Input:
1 2 3 4
Output:
5/4
-1/4
3/8
2/3

Điểm tọa độ (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Trong mặt phẳng tọa độ Oxy, cho N điểm. Hãy sắp xếp các điểm theo khoảng cách từ điểm đó đến gốc tọa độ O(0,0) tăng dần. Nếu khoảng cách bằng nhau, điểm nào có hoành độ (x) nhỏ hơn đứng trước.

Dữ liệu vào:

Dòng 1: N.

N dòng tiếp theo: Mỗi dòng chứa 2 số nguyên x, y.

Dữ liệu ra:

Danh sách các điểm (x y) sau khi sắp xếp.

Ràng buộc:

1 <= N <= 10^4

|x|, |y| <= 1000

Ví dụ:

Input:
3
1 1
0 2
3 0
Output:
1 1 0 2 3 0

Giải thích: d(1,1)=căn(2), d(0,2)=2, d(3,0)=3.