Advertisement
Saleh127

UVA 469

Jun 20th, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. bool v[505][505];
  5. string a[205],b;
  6.  
  7. ll n=0,m=0,ans=0;
  8. ll dx[]={-1,-1,-1,0,0,1,1,1};
  9. ll dy[]={1,0,-1,1,-1,1,0,-1};
  10. bool check(ll i,ll j)
  11. {
  12. if(i<0 || j<0 || i>=n || j>=m || a[i][j]=='L' || v[i][j]!=0) return 0;
  13. return 1;
  14. }
  15.  
  16. void dfs(ll i,ll j)
  17. {
  18. v[i][j]=1;
  19. ans++;
  20. for(ll k=0;k<8;k++)
  21. {
  22. ll ww=i+dx[k];
  23. ll ee=j+dy[k];
  24. if(check(ww,ee))
  25. {
  26. dfs(ww,ee);
  27. }
  28. }
  29.  
  30. }
  31.  
  32. int main()
  33. {
  34.  
  35.  
  36. int tt,j,k,l;
  37.  
  38. scanf("%d",&tt);
  39. getchar();
  40. getchar();
  41.  
  42. while(tt--)
  43. {
  44. n=m=0;
  45.  
  46. while(getline(cin,b) && b.size()>0)
  47. {
  48. if(b.size()==0) break;
  49.  
  50. else if(b[0]!='W' && b[0]!='L')
  51. {
  52. istringstream cinn(b);
  53.  
  54. cinn>>k;
  55. cinn>>l;
  56.  
  57. memset(v,0,sizeof v);
  58. ans=0;
  59. dfs(k-1,l-1);
  60. cout<<ans<<endl;
  61. }
  62. else
  63. {
  64. if(m==0) m=b.size();
  65. a[n]=b;
  66. n++;
  67. }
  68. }
  69. if(tt) printf("\n");
  70. }
  71.  
  72. return 0;
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement