Lập trình thực hiện các công việc sau đây
Bài 1. Sắp xếp dãy số Tên file bài làm: DAYSO.PAS
Cho dãy số nguyên
a1, a2, ..., an (n £ 1000).
Hãy tìm cách thực hiện một số ít nhất phép đổi chỗ hai số hạng bất kỳ của dãy để thu được dãy số mà số lẻ đứng ở vị trí lẻ, số chẵn đứng ở vị trí chẵn.
Dữ liệu: Vào từ file văn bản DAYSO.INP:
· Dòng đầu tiên chứa số nguyên dương n;
· Dòng thứ i trong số n dòng tiếp theo chứa số hạng ai của dãy đã cho (-32767 £ ai £ 32767, i = 1, 2, ..., n).
Kết quả: ghi ra file văn bản DAYSO.OUT:
· Dòng đầu tiên ghi số lượng phép đổi chỗ cần thực hiện k (qui ước k = -1, nếu không thể biến đổi được dãy đã cho thành dãy thoả mãn yêu cầu đầu bài);
· Nếu k > 0, thì dòng thứ j trong số k dòng tiếp theo ghi chỉ số của hai số hạng cần đổi chỗ cho nhau ở lần đổi chỗ thứ j ( j =1, 2, ..., k).
Ví dụ:
Bài 2. Thời điểm gặp mặt Tên file bài làm: MEETING.PAS
Một nhóm gồm n bạn học sinh của một lớp tham gia một câu lạc bộ tin học vào dịp nghỉ hè. Biết rằng khoảng thời gian mà bạn thứ i có mặt tại câu lạc bộ là [ai, bi] (ai<bi tương ứng là các thời điểm đến và rời khỏi câu lạc bộ). Cô giáo chủ nhiệm lớp muốn tới thăm các bạn trong nhóm này. Hãy giúp cô giáo chủ nhiệm xác định thời điểm đến câu lạc bộ sao cho tại thời điểm đó cô giáo có thể gặp được nhiều bạn trong nhóm nhất.
Dữ liệu: Vào từ file văn bản MEETING.INP:
· Dòng đầu tiên ghi số nguyên dương n (n <= 1000);
· Dòng thứ i trong số n dòng tiếp theo ghi 2 số nguyên không âm ai, bi , i = 1, 2, ..., n.
Kết quả: Ghi ra file văn bản MEETING.OUT:
· Dòng đầu tiên ghi số nguyên dương k là số lượng bạn đang có mặt ở câu lạc bộ tại thời điểm cô giáo đến;
· Trong k dòng tiếp theo ghi chỉ số của k bạn có mặt ở câu lạc bộ tại thời điểm cô giáo đến, mỗi dòng ghi một chỉ số của một bạn.
Ví dụ:
Bài 1. Sắp xếp dãy số Tên file bài làm: DAYSO.PAS
Cho dãy số nguyên
a1, a2, ..., an (n £ 1000).
Hãy tìm cách thực hiện một số ít nhất phép đổi chỗ hai số hạng bất kỳ của dãy để thu được dãy số mà số lẻ đứng ở vị trí lẻ, số chẵn đứng ở vị trí chẵn.
Dữ liệu: Vào từ file văn bản DAYSO.INP:
· Dòng đầu tiên chứa số nguyên dương n;
· Dòng thứ i trong số n dòng tiếp theo chứa số hạng ai của dãy đã cho (-32767 £ ai £ 32767, i = 1, 2, ..., n).
Kết quả: ghi ra file văn bản DAYSO.OUT:
· Dòng đầu tiên ghi số lượng phép đổi chỗ cần thực hiện k (qui ước k = -1, nếu không thể biến đổi được dãy đã cho thành dãy thoả mãn yêu cầu đầu bài);
· Nếu k > 0, thì dòng thứ j trong số k dòng tiếp theo ghi chỉ số của hai số hạng cần đổi chỗ cho nhau ở lần đổi chỗ thứ j ( j =1, 2, ..., k).
Ví dụ:
DAYSO.INP | DAYSO.OUT | | DAYSO.INP | DAYSO.OUT |
6 1 2 3 4 6 5 | 1 5 6 | | 4 1 3 2 5 | -1 |
Bài 2. Thời điểm gặp mặt Tên file bài làm: MEETING.PAS
Một nhóm gồm n bạn học sinh của một lớp tham gia một câu lạc bộ tin học vào dịp nghỉ hè. Biết rằng khoảng thời gian mà bạn thứ i có mặt tại câu lạc bộ là [ai, bi] (ai<bi tương ứng là các thời điểm đến và rời khỏi câu lạc bộ). Cô giáo chủ nhiệm lớp muốn tới thăm các bạn trong nhóm này. Hãy giúp cô giáo chủ nhiệm xác định thời điểm đến câu lạc bộ sao cho tại thời điểm đó cô giáo có thể gặp được nhiều bạn trong nhóm nhất.
Dữ liệu: Vào từ file văn bản MEETING.INP:
· Dòng đầu tiên ghi số nguyên dương n (n <= 1000);
· Dòng thứ i trong số n dòng tiếp theo ghi 2 số nguyên không âm ai, bi , i = 1, 2, ..., n.
Kết quả: Ghi ra file văn bản MEETING.OUT:
· Dòng đầu tiên ghi số nguyên dương k là số lượng bạn đang có mặt ở câu lạc bộ tại thời điểm cô giáo đến;
· Trong k dòng tiếp theo ghi chỉ số của k bạn có mặt ở câu lạc bộ tại thời điểm cô giáo đến, mỗi dòng ghi một chỉ số của một bạn.
Ví dụ:
MEETING.INP | MEETING.OUT | | MEETING.INP | MEETING.OUT |
6 1 2 2 3 2 5 5 7 6 7 9 11 | 3 1 2 3 | | 5 1 2 3 5 7 9 11 15 17 21 | 1 1 |