Kiểu dữ liệu pair trong c++
Đ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 doanh thu và tiền lãi (n <= 100)
N dòng tiếp theo mỗi dòng là hai số là số tiền đầu tư và lãi
Đầu ra: In ra DS doanh thu và tiền lãi theo yêu cầu đầu bà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
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 hoặc bằng 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
Tìm cặp tạo tổng bằng K
Nộp bàiPoint: 1
Cho n cặp số (x, y) và một số K.
Hãy đếm xem có bao nhiêu cặp khác nhau trong danh sách mà tổng của chúng (x1 + y1 + x2 + y2) = K.
Input:
Dòng 1: n K
n dòng: x y
Output: Một số nguyên — số lượng cặp thỏa mãn.
Ví dụ:
Input 1:
3 10
2 3
1 4
5 0
Output 1:
3
Input 2:
4 8
1 2
3 2
4 0
2 3
Output 2:
2
Cặp phủ nhau
Nộp bàiPoint: 1
Mỗi cặp (l, r) biểu diễn một đoạn [l, r] trên trục số.
Hãy đếm xem có bao nhiêu cặp đoạn giao nhau ít nhất tại một điểm.
Input:
Dòng 1: n
n dòng: l r (l ≤ r)
Output: Số lượng cặp đoạn giao nhau.
Input 1:
3
1 3
2 5
6 8
Output 1:
1
Input 2:
4
1 4
2 3
3 6
5 7
Output 2:
4
Kiểm tra cặp đối xứng
Nộp bàiPoint: 1
Nhập n cặp (x, y).
Một cặp (x, y) được gọi là đối xứng nếu trong danh sách cũng có (y, x).
Hãy đếm xem có bao nhiêu cặp đối xứng (mỗi cặp chỉ tính một lần).
Input:
Dòng 1: n
n dòng: x y
Output: Số lượng cặp đối xứng.
Input 1:
4
1 2
2 1
3 4
5 6
Output 1:
1
Input 2:
5
1 2
2 3
3 1
2 1
1 3
Output 2:
2
Gom nhóm theo phần tử đầu
Nộp bàiPoint: 1
Nhập n cặp (a, b). Với mỗi giá trị a, hãy tính tổng tất cả b tương ứng.
Sau đó in ra các cặp (a, tổng_b) theo thứ tự tăng dần của a.
Input:
Dòng 1: n
n dòng: a b
Output: Danh sách các cặp (a, tổng_b) mỗi dòng 2 số.
Input 1:
5
1 2
2 3
1 5
3 1
2 7
Output 1:
1 7
2 10
3 1
Input 2:
4
4 4
1 1
1 3
4 2
Output 2:
1 4
4 6
Cặp gần nhất
Nộp bàiPoint: 1
Cho n cặp số (x, y). Hãy tìm hai cặp khác nhau sao cho khoảng cách giữa chúng là nhỏ nhất, với khoảng cách giữa hai cặp (x1, y1) và (x2, y2) được tính là:
|x1 - x2| + |y1 - y2|
In ra giá trị khoảng cách nhỏ nhất.
Input:
Dòng 1: số nguyên n
n dòng tiếp theo: hai số nguyên x y.
Output: Một số nguyên — khoảng cách nhỏ nhất.
Ví dụ:
Input 1:
3
1 2
2 3
10 10
Output 1:
2
Input 2:
4
0 0
1 0
3 3
2 1
Output 2:
1
Quản lý DS học sinh giỏi tin học
Nộp bàiPoint: 1
Cho thông tin của n (n <= 10^6) học sinh tham gia kỳ thi học sinh giỏi Tin học.
Mỗi học sinh gồm 3 thông tin:
• Tên (chỉ là 1 từ, không có khoảng trắng).
• Điểm trắc nghiệm (số thực từ 0 đến 10).
• Điểm thực hành (số thực từ 0 đến 10).
Điểm trung bình (ĐTB) của một học sinh được tính theo công thức:
ĐTB = 0.6 x Điểm trắc nghiệm + 0.4 x Điểm thực hành
Yêu cầu:
• Sắp xếp danh sách học sinh theo ĐTB giảm dần.
• Nếu có nhiều học sinh có cùng ĐTB, thì sắp xếp theo tên (theo thứ tự từ điển, tăng dần).
• In ra danh sách học sinh sau khi sắp xếp, gồm: họ tên, điểm trắc nghiệm, điểm thực hành, điểm trung bình (lấy chính xác 2 chữ số thập phân).
Dữ liệu vào (Input)
• Dòng đầu tiên: số nguyên n (số lượng học sinh, 1 ≤ n ≤ 10^6).
• Trong n dòng tiếp theo, mỗi dòng gồm: họ tên, điểm trắc nghiệm, điểm thực hành
Dữ liệu ra (Output)
In ra danh sách học sinh sau khi sắp xếp, mỗi học sinh một dòng, gồm: Họtên Điểmtrắcnghiệm Điểmthựchành Điểmtrung_bình
Trong đó Điểmtrungbình được làm tròn đến 2 chữ số thập phân.
Input:
3
Bao 8 9
Tuan 9 8
An 8 9
Output:
Tuan 9.00 8.00 8.60
An 8.00 9.00 8.40
Bao 8.00 9.00 8.40
Đèn trung thu
Nộp bàiPoint: 1
Trên một con đường được chia thành các đoạn thắng như trên trục số. Trên con đường đó có n nhà treo đèn lồng đón trung thu. Nhà thứ i có treo đèn bắt đầu từ vị trí si đến vị trí di. Tổ dân phố muốn tính tổng đoạn đường được bao phủ bởi đèn lồng trên con phố trên (chú ý: hai nhà có thể treo đèn lồng trùng nhau trên một đoạn đường). Em hãy giúp tố dân phố tính tống số đoạn đường được bao phủ bởi đèn lồng.
Input:
• Dòng đầu là số n (1 ≤ n ≤ 10^6)
• n dòng tiếp theo, dòng thứ i chứa hai số si và di (0 ≤ si ≤ di ≤ 2 * 10^9)
Output: Ghi ra số nguyên duy nhất thỏa mãn yêu cầu đề bài
Input:
3
1 3
2 4
3 5
Output:
4
Input:
3
1 2
4 5
5 8
Output:
5
Phân tích số nguyên chẵn
Nộp bàiPoint: 1
Cho một số nguyên dương chẵn n. Hãy liệt kê tất cả các cách phân tích n thành tổng của hai số a và b sao cho: a, b nguyên tố và a+b=n (a <= b)
Input: Gồm một số nguyên dương chẵn n duy nhất (n ≤ 1000).
Output:
• Dòng thứ nhất chứa số k - số lượng cách phân tích khác nhau.
• K dòng tiếp theo, mỗi dòng chứa hai số a và b thỏa mãn yêu cầu đề bài. Các cặp số (a, b) có thế được in theo thứ tự bất kì.
Input:
10
Output:
2
3 7
5 5
Đổi tiền
Nộp bàiPoint: 1
Minh đi mua sắm tại cửa hàng SS. Cửa hàng có các mệnh giá tiền: 1$, 5$, 10$, 50$, 100$, 500$. Minh mua một số mặt hàng trong cửa hàng và trả số tiền là 1000$. Nhiệm vụ của bạn là tìm ra cách trả lại tiền thừa cho Minh bằng số lượng tờ tiền ít nhất.
Input:
Dữ liệu đầu vào là nhiều dòng, trong đó dòng đầu tiên biểu thị số lượng lần mua. N dòng tiếp theo mỗi dòng biểu thị duy nhất một số nguyên N (1 ≤ N ≤ 999) là tổng giá trị của các mặt hàng Minh đã mua.
Output:
Dữ liệu đầu ra là các dòng, mỗi dòng là một số nguyên duy nhất, biểu thị số lượng tờ tiền ít nhất mà cửa hàng phải trả lại.
Giải thích:
Với 380 cửa hàng cần trả lại 620$ bằng cách sử dụng 1 tờ 500$, 1 tờ 100$, và 2 tờ 10$. Nên kết quả là 4
Ví dụ :
Input:
2
380
1
Output:
4
15
Đọc sách
Nộp bàiPoint: 1
Có n quyển sách, và Kotivalo cùng Justiina sẽ đọc hết tất cả chúng. Với mỗi quyển sách, bạn biết thời gian cần để đọc hết nó.
Cả hai sẽ đọc toàn bộ mỗi quyển sách từ đầu đến cuối, nhưng không thể đọc cùng một quyển cùng lúc. Nhiệm vụ của bạn là xác định tổng thời gian tối thiểu cần thiết để cả hai đọc hết tất cả các quyển sách.
Input:
Dòng đầu tiên chứa một số nguyên n — số lượng quyển sách.
Dòng thứ hai chứa n số nguyên t₁, t₂, …, tₙ — thời gian đọc từng quyển sách.
Output:
In ra một số nguyên: tổng thời gian tối thiểu cần thiết để đọc hết tất cả các quyển sách.
Ràng buộc:
~1 \le n \le 2 \cdot 10^5~
~1 \le t_i \le 10^9~
Ví dụ :
Input:
3
2 8 3
Output:
16
Minimize!!
Nộp bàiPoint: 1
Bạn được cho hai số nguyên a và b (a ≤ b). Xét tất cả các giá trị nguyên c thỏa mãn a ≤ c ≤ b, hãy tìm giá trị nhỏ nhất của biểu thức sau:
(c-a)+(b-c)
Dữ liệu vào:
Dòng đầu tiên chứa số nguyên t (1 ≤ t ≤ 55) - số lượng bộ test.
Mỗi bộ test gồm hai số nguyên a và b (1 ≤ a ≤ b ≤ 10).
Dữ liệu ra:
Với mỗi bộ test, in ra một số nguyên là giá trị nhỏ nhất của biểu thức
Ví dụ :
Input:
3
1 2
3 10
5 5
Output:
1
7
0
Biến đổi về 1 - Product
Nộp bàiPoint: 1
Bạn được cho một dãy số gồm n số nguyên a1 , a2, ..., an. Một thao tác được ghi nhận khi bạn thực hiện tăng hoặc giảm giá trị của bất kỳ số ai nào trong dãy lên 1 đơn vị (tức là ai = ai + 1 hoặc ai = ai - 1) và bạn có thể lặp đi lặp lại thao tác này vô số lần.
Thầy giáo muốn bạn hãy thực hiện các thao tác tăng giảm giá trị đó để thu được một dãy số mới sao cho tích của các phần tử trong dãy số mới này bằng 1.
Ví dụ: với n = 3 và dãy số gồm 3 phần tử là [1,-3,0] chúng ta có thể thực hiện tăng 2 lần số -3 (tức a2) đế trở thành - 1 và giảm 1 lần số 0 (tức a3) đế trở thành -1. Lúc này ta sẽ thu được dãy số mới là [1, -1, - 1] và tích các phần tử trong dãy số này bằng 1. Như vậy, bạn sẽ mất tông cộng 3 thao tác đề thực hiện ba lần tăng/giảm giá trị. Có nhiều cách khác nhau để thực hiện việc tăng giảm để dãy mới thu được có tích bằng 1, tuy nhiên sẽ không tồn tại cách nào ít hơn ba thao tác.
Yêu cầu: Cho dãy số a gồm n số nguyên, hãy tìm ra chi phí ít nhất để biến đổi dãy số a đã cho trở thành dãy mới với tích các phần tử trong dãy bằng 1.
Dữ liệu vào:
Dòng đầu là số nguyên dương n.
Dòng thứ 2 gồm n số nguyên a; (-10^9 ≤ ai ≤ 10^9) với mỗi số được cách nhau bởi một dấu cách.
Dữ liệu ra:
Chi phí ít nhất để biến đổi dãy số đã cho để trở thành dãy có tích các phần tử bằng 1.
Ràng buộc:
Có 50% số test của bài có 0 < n ≤ 100
Có 50% số test còn lại của bài có 0 < n ≤ 10^5
Ví dụ:
Input 01:
2
-1 1
Output 01:
2
Input 02:
5
-5 -3 5 3 0
Output 02:
13