Trang chủ Tin Học Lớp 8 CODE C++: kho an toàn Nhà máy sản xuất vũ...

CODE C++: kho an toàn Nhà máy sản xuất vũ khí có nhiều kho hàng và các kho hàng có lính canh gác. Các kho hàng và lính canh được thể hiện trên ma trận m dòng,

Câu hỏi :

CODE C++: kho an toàn Nhà máy sản xuất vũ khí có nhiều kho hàng và các kho hàng có lính canh gác. Các kho hàng và lính canh được thể hiện trên ma trận m dòng, N cột. Kho hàng được gọi là kho an toàn nếu xung quanh các kho đó có 8 lính canh. Hãy lập trình đưa ra vị trí các kho an toàn. Dữ liệu vào: - Dòng 1 là 2 số nguyên m, n (0<m,n<=100) - M dòng tiếp theo mỗi dòng có n số 0 hoặc 1 thể hiện kho hàng và lính canh (kho hàng kí hiệu : 0 ; lính canh kí hiệu :1 - Các số trên cùng một dòng ghi cách nhau một dấu cách. Kết quả : - Nếu có kho an toàn thì ghi vị trí của các kho đó (chỉ số dòng và cột) - Nếu không có kho an toàn thì ghi -1 - Các số trên cùng một dòng ghi cách nhau một dấu cách. 4 5 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1

Lời giải 1 :

#include <iostream>
using namespace std;

const int maxn = 102;
int n,m;
bool a[maxn][maxn];
bool flag = 0;

bool check(int p,int k) {
 for (int i = p-1;i <= p+1;i++)
  for (int j = k-1;j <= k+1;j++) {
   if (i == p && j == k) continue;
   if (a[i][j] != 1)
    return false;
  }
 return 1;
}

int main() {
 cin >> n >> m;
 for (int i = 1;i <= n;i++)
  for (int j = 1;j <= m;j++)
   cin >> a[i][j];
   
 for (int i = 2;i < n;i++)
  for (int j = 2;j < m;j++) {
   if (a[i][j] == 1) continue;
   if (check(i,j)) {
       cout << i << ' ' << j << '\n';
       flag = 1;
   }
  }
  
 if (!flag)
  return cout << -1, 0;
}

Thảo luận

-- chính xác

Lời giải 2 :

#include<bits/stdc++.h>
using namespace std;
int main()
{
 int n,m,dem=0;
 cin>>n>>m;
 int a[105][105]={0};
 for (int i=1;i<=n;i++)
 {
 for (int y=1;y<=m;y++)
 cin>>a[i][y];
 }
 for (int i=1;i<=n;i++)
 {
 for (int y=1;y<=m;y++)
  if(a[i][y]==0)
  {
   if (a[i-1][y]==1&&a[i-1][y-1]==1&&a[i-1][y+1]==1&&a[i][y+1]==1&&a[i][y-1]==1&&a[i+1][y]==1&&a[i+1][y-1]==1&&a[i+1][y+1]==1)
   cout<<i<<" "<<y<<" ",dem++;
  }
 }
 if (dem==0) cout<<-1;
}

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK