P141PROB - ROUND 1B - Tuần lễ công dân

Người Gửi: Sai

  • Problem:

Sau khi đi nhập học, Tèo rất phấn khởi và bắt đầu ngay việc học ở trường đại học. Tuần học đầu tiên là tuần lễ công dân. Mục tiêu chính của Tèo cũng như các tân sinh viên khác là kết bạn.  
Hội trường gồm có R*C vị trí chỗ ngồi (R hàng và C cột). Mỗi bạn sinh viên sẽ cố gắng làm quen và bắt tay với tất cả những người bạn xung quanh mình. Như vậy, mỗi bạn sẽ làm quen được tối đa là 8 người bạn mới.
Buổi học đã bắt đầu, nhưng không may, Tèo lại đến muộn (là người muộn nhất). Tèo sẽ chọn một vị trí trống sao cho có thể làm quen với nhiều bạn mới nhất có thể. Nếu không có ghế trống nào, Tèo quyết định bùng học. :D  
Hãy tính toán số lượng cái bắt tay sẽ được thực hiện trong buổi học đầu tiên này.


Input

Dòng đầu tiên là 2 số nguyên R và C (1 <= R, C <= 50).  
R dòng tiếp theo, mỗi dòng chứa C kí tự. Kí tự ‘.’ thể hiện chỗ ngồi còn trống, và kí tự ‘o’ thể hiện một sinh viên.
Output
In ra một số nguyên duy nhất là số lượng cái bắt tay sẽ được thực hiện.
Example:
Input
2 3
..o
o..
Output:
2

Input
2 2
oo
oo
Output:
6
  • Solution:

Giải thích test 1: Tèo có thể ngồi ở vị trí (1,2) hoặc (2,1). Khi đó có tất cả 2 cái bắt tay được thực hiện.
Giải thích test 2: Không có ghế trống nào nên Tèo quyết định đi về. Tuy nhiên, tại buổi học đó vẫn có  tổng cộng 6 cái bắt tay được diễn ra.
_Cách làm: - Trong bài có các trường hợp cần phải xét: Không có sinh viên nào và không có ghế trống. - Ngoài các trường hợp trên thì ta sẽ tìm chỗ nào còn trống mà có nhiều sinh viên xung quanh nhất, có nhiều chỗ thì lấy chỗ nào cũng được. - Sau khi tìm được ta đặt chỗ đó là 'o'; - Duyệt toàn mảng: đếm số người xung quanh mà chưa được đánh dấu (chưa được bắt tay) (+ đánh dấu đã duyệt người này);

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »