Lập trình pascal – Rô bốt thám hiểm – HSG tin 9 Lâm Đồng 1819

Trong đề thi HSG tin 9 Lâm Đồng 1819 có bài robot thám hiểm rất thú vị. hãy xem nào

Bài 4: Chia sẻ của thầy Trần Quang Vĩnh Chánh lấy từ nguồn học sinh

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef pair <ll, ll> ii;
typedef pair <ll, ii> iii;

const ll N = 1e3 + 5;
const ll INF = 1e9 + 7;

ll m, n, a[N][N];
bool dd[N][N];

vector <ii> V;

const ll mx[] = { -1, -1, -1, 0, 1, 1, 1, 0 };
const ll my[] = { -1, 0, 1, 1, 1, 0, -1, -1 };

int main() {
//freopen(“ROBOT.INP”, “r”, stdin);
//freopen(“ROBOT.OUT”, “w”, stdout);
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
scanf(“%lld%lld”, &m, &n);
ll CC = 0;
for (ll i = 1; i <= m; i++)
for (ll j = 1; j <= n; j++) {
scanf(“%lld”, &a[i][j]);
if (a[i][j] == 0) CC++;
}
//********************
memset(dd, false, sizeof dd);
dd[1][1] = true;
deque <ii> Q; Q.clear();
Q.push_back(ii(1, 1));
while (not Q.empty()) {
ll x = Q.front().first, y = Q.front().second; Q.pop_front();
for (ll k = 0; k < 8; k++) {
ll xx = x + mx[k], yy = y + my[k];
if (xx >= 1 && xx <= m && yy >= 1 && yy <= n && a[xx][yy] == 0 && dd[xx][yy] == false) {
dd[xx][yy] = true;
Q.push_back(ii(xx, yy));
}
}
}
//********************
for (ll i = 1; i <= m; i++)
for (ll j = 1; j <= n; j++) if (dd[i][j]) {
ll C = 0;
for (ll k = 0; k < 8; k++) {
ll ii = i + mx[k], jj = j + my[k];
if (ii >= 1 && ii <= m && jj >= 1 && jj <= n)
C += a[ii][jj] == 0;
}
if (C <= 1 and not(i == 1 and j == 1)) V.push_back(ii(i, j));
}
cout << CC << endl;
sort(V.begin(), V.end());
for (auto it : V) cout << it.first << ” ” << it.second << endl; exit(0);
return 0;
}

Có lẽ bạn cũng quan tâm:

Khó hiểu quá phải không các bạn, thôi từ từ đọc vậy thư giãn cái đi:

BIẾT THẾ VẪN VUI

Thơ: Nguyễn Diễm

Xuân về ai cũng vui mừng

Gái trai già trẻ từng bừng đón xuân
Cả nhà xum họp quây quần
Chúc cho con cháu làm ăn phát tài
Chúc cho ông bà sống dai
Tối đa cũng phải trên ngoài một trăm
Đời người quy luật rõ ràng
Có ai sống được đàng hoàng ngàn năm
Vậy nên mỗi mùa xuân sang
Ông bà tiến đến nghĩa trang càng gần
Biết rồi nhưng chẳng phân vân
Con người có số đâu cần đắn đo
Cứ vui cứ hát cứ ho
Khi nào hỏa táng thành tro xong đời

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button