Kiểu dữ liệu pair trong C++
Cải tạo công trình (pair)
Nộp bàiPoint: 1
Công ty G nhận làm n dự án đánh số từ 1 đến n để cải tạo các công trình công cộng và các địa điểm tham quan du lịch của thành phố. Dự án i cần công ty G đầu tư một khoản tiền là ai để mua vật liệu và sau khi hoàn thành dự án i, công ty G được thành phố trả số tiền công là bi. Vấn đề duy nhất đặt ra là công ty phải huy động một số vốn ban đầu để chi trả những khoản đầu tư khi mà thành phố chưa nghiệm thu toàn bộ các dự án. Biết rằng công ty X có thể thực hiện các dự án theo thứ tự tùy ý. Hãy cho biết số vốn ban đầu ít nhất cần huy động.
Dữ liệu đầu vào:
Dòng 1: Chứa số n là số dự án (n <= 10^5)
Dòng thứ 2 chứa n số nguyên a1, a2, ..., an
Dòng thứ 3 chứa n số nguyên b1, b2, ..., bn
Input:
6
6 3 1 2 4 9
2 4 3 1 3 2
Output:
11
Điểm số (pair)
Nộp bàiPoint: 1
Kết thúc kỳ thi giữa kì gồm hai môn Tin và Thể dục, Nhà trường muốn thống kê xem học sinh này có tổng điểm đứng thứ mấy trong trường (theo thứ tự giảm dần). Do số liệu thống kê rất lớn mà máy tính của nhà trường đang đi bảo trì nên hiệu trưởng nhờ các bạn viết chương trình thực hiện giúp
Định dạng đầu vào:
• Dòng 1: Chứa số n là số học sinh (n <= 100)
• N dòng tiếp theo mỗi dòng gồm: Tên viết tắt của học sinh và hai số x, y là điểm của hai môn Tin và Thể dục của học sinh đó
Định dạng đầu ra: In ra tên và thứ tự xếp hạng của học sinh đó theo thứ tự tổng điểm cao nhất đứng thứ 1...
Input:
6
NA 3 5
MT 6 7
TB 5 5
MH 8 8
YN 6 2
PQ 4 3
Output:
MH 1
MT 2
TB 3
NA 4
YN 5
PQ 6
Chênh lệch (pair)
Nộp bàiPoint: 1
Trong một bữa tiệc, mỗi người đều có bạn nhảy riêng của mình. Giả sử bạn nam có chiều cao là x, bạn nữ có chiều cao là y thì |x-y| được xem là độ chênh lệch chiều cao. Ban tổ chức muốn tìm độ chênh lệch xuất hiện nhiều nhất là bao nhiêu (lặp lại nhiều nhất), sau đó hãy in ra chiều cao của những cặp có cùng chênh lệch xuất hiện nhiều nhất đó theo thứ tự dữ liệu nhập vào. Lưu ý nếu tồn tại nhiều độ chênh lệch có cùng tần suất thì chọn độ chênh lệch nhỏ nhất.
Định dạng đầu vào:
• Dòng 1: Chứa số n là số cặp nhảy (n <= 1000)
• N dòng tiếp theo mỗi dòng là hai số x, y là chiều cao của bạn nam và bạn nữ
Input:
4
5 6
7 8
5 3
9 10
Output:
1
5 6
7 8
9 10
Xếp tiền (pair)
Nộp bàiPoint: 1
Doanh thu trong năm của một công ty gồm số tiền đầu tư và số lãi, công ty muốn bạn sắp xếp doanh thu tăng dẫn theo số tiền lãi. Nếu số tiền lãi bằng nhau thì sắp giảm dần theo số tiền đầu tư. Hãy giúp công ty thực hiện công việc trên
Định dạng đầu vào:
Dòng 1: Chứa số n là số lượng tên đồ vật mà anh Tí đưa ra (n <= 100)
N dòng tiếp theo mỗi dòng là hai số là số tiền đầu tư và lãi
Input:
4
100 200
130 180
450 300
210 300
Output:
130 180
100 200
450 300
210 300
Đảo chữ (pair)
Nộp bàiPoint: 1
Bé Bin mới học về tên của các đồ vật gồm hai từ như: tủ lạnh, xe đạp, máy bay,... để thử thách bé Bin, anh Tí đã nghĩ ra câu đố rằng hãy đảo ngược tên những đồ vật được cho trong thời gian 1s. "tủ lạnh" thành "lạnh tủ", "xe đạp" thành "đạp xe"
Định dạng đầu vào:
Dòng 1: Chứa số n là số lượng tên đồ vật mà anh Tí đưa ra (n <= 50); N dòng tiếp theo mỗi dòng là tên một đồ vật (gồm hai từ, mỗi từ không quá 5 kí tự, viết in thường, không dấu)
Định dạng đầu ra: Là đáp án của bài toán
Input:
3
tu lanh
xe dap
nha may
Output:
lanh tu
dap xe
may nha
Tổng 4 số chính phương nhỏ nhất (vòng lặp)
Nộp bàiPoint: 1
Viết chương trình tìm số tự nhiên bé nhất có ít nhất 2 cách biểu diễn nó thành tổng của 4 số chính phương đôi một khác nhau. Ví dụ 78 = 1^2 + 2^2 + 3^2 + 8^2 = 2^2 + 3^2 + 4^2 + 7^2
In ra số tự nhiên bé nhất tìm được
Cuộc chiến với rồng (kỹ thuật sắp xếp - tìm kiếm)
Nộp bàiPoint: 1
Kirito đang bị mắc kẹt ở cấp độ của MMORPG mà anh ấy đang chơi hiện tại. Để tiếp tục trò chơi, anh ta phải đánh bại tất cả n con rồng sống ở cấp độ này. Kirito và những con rồng có sức mạnh được biếu thị bằng một số nguyên. Trong cuộc đọ sức giữa hai đối thủ, kết quả của cuộc đọ sức được quyết định bởi sức mạnh của họ. Ban dầu, sức mạnh của Kirito băng s.
Nếu Kirito bắt đầu đầu tay đôi với rồng thứ i (1 <= i <= n) và sức mạnh của Kirito không lớn hơn sức mạnh của rồng có sức mạnh là xi thì Kirito thua trận đấu và chết. Nhưng nếu sức mạnh của Kirito lớn hơn sức mạnh của con rồng thì anh ta sẽ đánh bại con rồng và được tăng thêm sức mạnh theo là yi
Kirito có thế chiến đấu với những con rồng theo bất kỳ thứ tự nào. Xác định xem liệu anh ta có thế chuyến sang cấp độ tiếp theo của trò chơi hay không, tức là đánh bại tất cả những con rồng mà không bị thua một làn nào.
Định dạng đầu vào:
Dòng đầu tiên chứa hai số nguyên được phân tách băng dấu cách n và s (1 ≤ s ≤ 10^6, 1 ≤ n ≤ 10^5).
Sau đó n dòng tiếp theo: dòng thứ i chứa các số nguyên được phân tách băng dấu cách là xi và yi (1 <= xi <= 10^4, 0 <= yi <= 10^4) - sức mạnh của con rồng thứ i và sức mạnh được tăng thêm khi đánh bại nó.
Ràng buộc:
1 <= s <= 10^6; 1 <= n <= 10^5
1 <= xi <= 10^4; 1 <= yi <= 10^4
Input:
2 2
1 99
100 0
Output:
YES
Sắp xếp lịch diễn (sắp xếp - tìm kiếm)
Nộp bàiPoint: 1
Ca sĩ nối tiếng Le Roi vừa nhận được các lời mời lưu diễn của n đoàn ca nhạc. Đoàn thứ i mời lưu diễn từ ngày ai đến ngày bi (ai, bi là các số nguyên, ai ≤ bi). Tuy nhiên tại một thời điểm, Le Roi chỉ có thể tham gia hát cho một đoàn duy nhất mà thôi. Với mong muốn đem lời ca tiếng hát của mình đến nhiều khán giả nhất, Le Roi quyết định sẽ chọn tham gia nhiều đoàn nhất có thể. Bạn hãy tính thử xem Le Roi nên chọn tham gia những đoàn nào để số lượng đoàn là nhiều nhất mà không bị trùng nhau về mặt thời gian.
Đầu vào:
Dòng thứ nhất là số nguyên n là số đoàn ca nhạc.
Trong n dòng tiếp theo, dòng thứ i gồm hai số ai, bi cách nhau một khoảng trắng là ngày bắt đầu và ngày kết thúc lưu diễn của đoàn thứ i.
Ràng buộc: 1<=n<=10^5; 1<=ai<=bi<=10^6
Đầu ra: Số nguyên xác định số lượng đoàn nhiều nhất mà Le Roi có thể tham gia.
Input:
6
3 8
9 12
6 10
1 4
2 7
11 14
Output:
3
Job Scheduling (tham lam)
Nộp bàiPoint: 1
Cho hệ gồm N hành động. Mỗi hành động được biểu diễn như một bộ đôi tương ứng với thời gian bắt đầu và thời gian kết thúc của mỗi hành động. Hãy tìm phương án thực hiện nhiều nhất các hành động nhất có thể, biết rằng 2 hành động phải được thực hiện một cách độc lập. 2 hành động được gọi là độc lập nếu thời gian kết thúc của hành động thứ nhất nhỏ hơn thời gian bắt đầu của hành động thứ 2.
Đầu vào: Dòng đầu tiên là số nguyên dương N; N dòng tiếp theo chứa thời gian bắt đầu và kết thúc của N hành động;
Ràng buộc: 1<=N<=10^6;1<=Start[i]<=End[i]<=10^7
Đầu ra: In ra số lượng hành động nhiều nhất có thể thực hiện.
Input:
16
1 5
2 7
3 7
5 7
6 7
10 12
10 13
1 3
7 8
9 14
5 6
9 10
3 5
8 13
1 6
3 6
Output:
4