Hiển thị các bài đăng có nhãn Cơ bản. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Cơ bản. Hiển thị tất cả bài đăng

Thứ Ba, 17 tháng 11, 2015

ĐIỂM SỐ

Trong kỳ thi vấn đáp học sinh phải trả lời các câu hỏi của thầy giáo. Nếu trả lời đúng, thầy giáo đánh dấu bằng ký tự ‘C’ (Correct), nếu sai thì đánh dấu ‘N’ (No Correct). Khi học sinh trả lời đúng, thầy sẽ đưa ra câu hỏi tiếp theo khó hơn câu trước, còn khi trả lời sai thầy sẽ cho câu hỏi mới dễ hơn. Sau khi thi xong, kết quả của mỗi học sinh là một xâu các ký tự ‘C’ và ‘N’. Điểm số của học sinh sẽ được tính như sau: Với các câu trả lời sai học sinh không được điểm, với mỗi câu trả lời đúng học sinh nhận được điểm bằng số lần trả lời đúng liên tiếp từ câu trả lời này trở về trước. Ví dụ, nếu kết quả là ‘CCNNCNNCCC’, thì điểm số sẽ là 1+2+0+1+0+0+1+2+3 = 10.
Yêu cầu: Cho xâu kết quả độ dài không quá 80, hãy tính điểm của học sinh.
Dữ liệu: Vào từ file văn bản SCORE.INP:
+ Dòng đầu tiên chứa số nguyên T - số lượng Tests,
+ Mỗi dòng trong T dòng sau chứa một xâu kết quả thi.
Kết quả: Đưa ra file văn bản SCORE.OUT điểm số của từng kết quả, mỗi điểm số là một số nguyên và đưa ra trên một dòng.
Ví dụ:

SCORE.INP
SCORE.OUT
5
CCNNCNNCCC
CCNNCCNNCC
CNCNCNCNCNCNCN
CCCCCCCCCC
CCCCNCCCCNCCCCN
10
9
7
55
30

Thứ Hai, 16 tháng 11, 2015

XẾP PHÒNG KHÁCH SẠN

Một khách sạn có n phòng đánh số từ 1 đến n, mỗi phòng có hai giường.
Khi một đoàn khách đến, họ sẽ được nhân viên lễ tân sắp xếp theo cách như sau: Trong các phòng còn trống, 1 cặp (2 khách) được xếp vào phòng có thứ tự nhỏ nhất. Nếu số khách trong một đoàn là lẻ thì người cuối cùng sẽ được xếp vào phòng trống có số thứ tự nhỏ nhất (trong các phòng còn lại). Nếu không còn đủ phòng thì mỗi khách sẽ được xếp vào phòng có 1 khách đoàn khác đang sử dụng với số thứ tự nhỏ nhất.
Lúc đầu, khách sạn không có khách (trống). Số khách của mỗi đoàn được biết trước. Viết chương trình xác định số khách trong từng phòng sau khi sắp xếp xong vị khách cuối cùng.
Dữ liệu vào: Từ tệp văn bản ROOMS.INP
+ Dòng đầu chứa 2 số nguyên dương n, k (1 <= n <=100); n là số phòng khách sạn, k là số đoàn khách.
+ K dòng tiếp theo, dòng thứ i+1 chứa 1 số nguyên dương là số khách trong đoàn i, i=1 … k.
Tổng số khách (trong tất cả các đoàn) nhỏ hơn hoặc bằng số giường trong khách sạn.
Dữ liệu ra: ghi vào tệp văn bản ROOMS.OUT
Chứa n dòng, dòng thứ i là số khách xếp trong phòng đó sau khi đã xếp vị khách cuối cùng.
Ví dụ:

ROOM.INP
ROOM.OUT
5 4
3
1
1
4
2
2
2
1
2

Thứ Sáu, 6 tháng 11, 2015

TẤM KHIÊN

Hiệp sỹ Petrein đến làm khách ở Chúa tể Bóng đêm đã được vài tuần, được nghe về các kỳ tích hiển hách của vị Chúa tể trong những năm gần đây và hiểu rằng đã lâu lắm mình chưa lập một kỳ tích nào cả. Cùng nhau cân nhắc kỹ lưỡng bên chén trà hai người thống nhất là Petrein phải đi giết con Rồng lửa đang tác oai tác quái phía tây của vương quốc.
Nhưng có hiệp sỹ nào lên đường mà không có giáp phục, giáo và khiên! Petrein hiện đang có 2 cái khiên hình tam giác, nhưng ông cho rằng như thế là chưa đủ. Khiên phải càng to càng tốt và ông quyết định giao cho thợ rèn làm khiên mới từ 2 khiên hiện có. Người thợ rèn của hoàng cung đề nghị hàn mép của hai khiên nối chúng thành một khiên duy nhất. Petrein nhận thấy dù có hàn cách nào diện tích khiên mới cũng không đổi, vì vậy ông đề nghị hàn sao cho chu vi của khiên mới là nhỏ nhất để không phải tốn nhiều vàng làm đường viền cho khung. Cái khiên phải mang biểu tượng của gia tộc!
Yêu cầu: Cho 6 số nguyên a1, b1, c1a2, b2, c2 – độ dài các cạnh của 2 khiên. Các độ dài có giá trị không vượt quá 105 và cạnh của tam giác không suy biến. Hãy xác định chu vi nhỏ nhất có thể nhận được.
Dữ liệu: Vào từ file văn bản SHIELD.INP:
·         Dòng đầu tiên chứa 3 số nguyên a1, b1c1,
·         Dòng thứ 2 chứa 3 số nguyên a2, b2c2.
Kết quả: Đưa ra file văn bản SHIELD.OUT một số nguyên – chu vi nhỏ nhất có thể nhận được.
Ví dụ:

SHIELD.INP
SHIELD.OUT
3 4 5
6 7 8
23

SOLUTION - TEST - CODE

Thứ Năm, 5 tháng 11, 2015

MẬT KHẨU

Mỗi người tham dự Olympic Tin học đều phải kích hoạt chương trình cung cấp mật khẩu riêng cho mình để truy nhập vào hệ thống. Khi được kích hoạt, chương trình sẽ đưa ra 2 số nguyên (ở hệ 10). Số thứ hai nhận được từ số thứ nhất bằng cách thay dãy không rỗng các chữ số liên tiếp nhau bằng tổng của chúng. Mật khẩu chính là dãy số tạo thành tổng để ghi vào số thứ 2. 
Ví dụ, 2 số mà chương trình cung cấp là 2148 và 213, số thứ 2 nhận được từ số thứ nhất sau khi thay 148 bằng 1+4+8 (= 13). Nếu đánh số các chữ số trong số thứ nhất bắt đầu từ 1, từ trái sang phải thì mật khẩu được xác định từ dãy các chữ số từ 2 đến 4 của số thứ nhất. 
Yêu cầu: Hãy xác định các vị trí đầu và cuối của dãy số tạo nên mật khẩu. 
Dữ liệu: Vào từ file văn bản PASSWORD.INP, dòng đầu tiên chứa số thứ nhất, dòng tiếp theo – chứa số thứ hai. Các số không bắt đầu bằng 0 và mỗi số có không quá 105 chữ số. 
Kết quả: Đưa ra file văn bản PASSWORD.OUT trên một dòng 2 số nguyên xác định các vị trí đầu và cuối của dãy số tạo nên mật khẩu. Nếu tồn tại nhiều lời giải thì đưa ra lời giải tùy chọn bất kỳ. File liệu đảm bảo có nghiệm. 
Ví dụ: 
PASSWORD.INP
PASSWORD.OUT
2148
213
2 4

SƯU TẬP ĐỒ CỔ

Bình rất thích trò chơi sưu tập đồ cổ. Trò chơi này như sau: Đầu tiên Bình chỉ có một món đồ cổ với độ tuổi 1 ngày. Trong N ngày tiếp theo, ngày thứ  i, cậu ghi lại độ tuổi của món đồ cổ mà mình có sau đó cậu bổ sung thêm một đồ vật có độ tuổi Xi ngày vào bộ sưu tập của mình. Công việc tưởng chừng đơn giản nhưng khi số lượng đồ cổ tăng lên và đặc biệt sau mỗi ngày độ tuổi của món đồ cổ lại tăng lên 1. Bạn hãy viết chương trình giúp Bình xác định độ tuổi của món đồ cổ nhất sau N ngày sưu tập
Dữ liệu vào từ tệp  COLLECTO.INP với cấu trúc như sau
+ Dòng đầu ghhi số N (N≤100000)
+ N dòng tiếp theo, dòng thứ i ghi số Xi
Dữ liệu ra ghi vào tệp COLLECTO.OUT ghi một số duy nhất là độ tuổi của món đồ cổ nhất
Ví dụ:

COLLECTO.INP
COLLECTO.OUT

COLLECTO.INP
COLLECTO.OUT
2
3
1
4

4
1
1
2
2
5

SOLUTION - TEST - CODE