Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define VA AnhNguyenProV2
  3. #define pb push_back
  4. #define FOR(i, a, b) for(int i = int(a); i <= int(b); i++)
  5. #define FORD(i, a, b) for(int i = int(a); i >= int(b); i--)
  6. #define REP(i, r) for(int i = 0; i < r; i++)
  7. #define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  8. #define READFILE freopen("input.txt", "r", stdin)
  9. #define WRITEFILE freopen("output.txt", "w", stdout);
  10. #define ii pair<int, int>
  11. #define ll long long
  12. #define fi first
  13. #define se second
  14. #define MAX 1111
  15. using namespace std;
  16.  
  17. char a[MAX][MAX];
  18. int n,m,vs[MAX][MAX],chicken,fox,nGa,nCao;
  19.  
  20. bool Ok(ii u)
  21. {
  22.     return (u.fi>0 && u.fi<=n && u.se>0 && u.se<=m);
  23. }
  24.  
  25. void DFS(ii u)
  26. {
  27.     FOR(dx,-1,1)
  28.         FOR(dy,-1,1)
  29.         if (!dx ^ !dy)
  30.         {
  31.             ii v; v.fi=u.fi+dx; v.se=u.se+dy;
  32.             if (!vs[v.fi][v.se] && Ok(v))
  33.             {
  34.                 if (a[v.fi][v.se]=='#') continue;
  35.                 if (a[v.fi][v.se]=='c') chicken++;
  36.                 if (a[v.fi][v.se]=='f') fox++;
  37.                 vs[v.fi][v.se]=true;
  38.                 DFS(v);
  39.             }
  40.         }
  41. }
  42.  
  43. int main()
  44. {
  45.     #ifndef ONLINE_JUDGE
  46.         READFILE;
  47.     #endif
  48.     FAST;
  49.  
  50.     cin >>n >> m;
  51.     FOR(i,1,n)
  52.         FOR(j,1,m)
  53.         {
  54.             cin >> a[i][j];
  55.         }
  56.  
  57.  
  58.     FOR(i,1,n)
  59.         FOR(j,1,m)
  60.         {
  61.             if (!vs[i][j] && a[i][j]!='#')
  62.             {
  63.  
  64.                 if (a[i][j]=='f') fox++;
  65.                 if (a[i][j]=='c') chicken++;
  66.                 vs[i][j]=true;
  67.                 DFS(ii(i,j));
  68.                 if (chicken<=fox)
  69.                 {
  70.                     chicken=0;
  71.                 }
  72.                 else fox=0;
  73.                 nGa+=chicken;
  74.                 nCao+=fox;
  75.                 chicken=0;
  76.                 fox=0;
  77.             }
  78.         }
  79.     cout<<nCao<<" "<<nGa;
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement