// UVa 352 - The Seasonal War #include <iostream> #include <queue> #include <stdio.h> using namespace std; int m[8][2] = { { 1, 1 }, { 1, 0 }, { 1, -1 }, { 0, 1 }, { 0, -1 }, { -1, 1 }, { -1, 0 }, { -1, -1 } }; struct pa { int a, b; }; int main() { int n, t = 0; while (cin >> n) { t++; string mat[25]; for (int i = 0; i < n; i++) cin >> mat[i]; int sol = 0; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (mat[i][j] == '1') { sol++; queue<pa> q; pa ini = { i, j }; q.push(ini); mat[ini.a][ini.b] = '0'; while (!q.empty()) { pa p = q.front(); q.pop(); for (int k = 0; k < 8; k++) { pa r = { p.a + m[k][0], p.b + m[k][1] }; if (r.a >= 0 && r.a < n && r.b >= 0 && r.b < n && mat[r.a][r.b] == '1') { mat[r.a][r.b] = '0'; q.push(r); } } } } printf("Image number %d contains %d war eagles.\n", t, sol); } return 0; }
Sunday, June 7, 2015
UVa 352 - The Seasonal War
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment