Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define VA AnhNguyenProV2
- #define pb push_back
- #define FOR(i, a, b) for(int i = int(a); i <= int(b); i++)
- #define FORD(i, a, b) for(int i = int(a); i >= int(b); i--)
- #define REP(i, r) for(int i = 0; i < r; i++)
- #define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
- #define READFILE freopen("input.txt", "r", stdin)
- #define WRITEFILE freopen("output.txt", "w", stdout);
- #define ii pair<int, int>
- #define ll long long
- #define fi first
- #define se second
- #define MAX 1111
- using namespace std;
- char a[MAX][MAX];
- int n,m,vs[MAX][MAX],chicken,fox,nGa,nCao;
- bool Ok(ii u)
- {
- return (u.fi>0 && u.fi<=n && u.se>0 && u.se<=m);
- }
- void DFS(ii u)
- {
- FOR(dx,-1,1)
- FOR(dy,-1,1)
- if (!dx ^ !dy)
- {
- ii v; v.fi=u.fi+dx; v.se=u.se+dy;
- if (!vs[v.fi][v.se] && Ok(v))
- {
- if (a[v.fi][v.se]=='#') continue;
- if (a[v.fi][v.se]=='c') chicken++;
- if (a[v.fi][v.se]=='f') fox++;
- vs[v.fi][v.se]=true;
- DFS(v);
- }
- }
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- READFILE;
- #endif
- FAST;
- cin >>n >> m;
- FOR(i,1,n)
- FOR(j,1,m)
- {
- cin >> a[i][j];
- }
- FOR(i,1,n)
- FOR(j,1,m)
- {
- if (!vs[i][j] && a[i][j]!='#')
- {
- if (a[i][j]=='f') fox++;
- if (a[i][j]=='c') chicken++;
- vs[i][j]=true;
- DFS(ii(i,j));
- if (chicken<=fox)
- {
- chicken=0;
- }
- else fox=0;
- nGa+=chicken;
- nCao+=fox;
- chicken=0;
- fox=0;
- }
- }
- cout<<nCao<<" "<<nGa;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement