Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bits/stdc++.h"
- using namespace std;
- #define pi pair<int,int>
- #define f first
- #define s second
- #define pb push_back
- #define FOR(i,a,b) for(int i=a;i<b;i++)
- #define For(i,a) FOR(i,0,a)
- vector<string> grid;
- map<pair<pi,pi>,int> done;
- int n,m;
- int dx[]={0,1,0,-1};
- int dy[]={1,0,-1,0};
- bool leg(int x, int y){
- return x>=0 && y>=0 && x<n && y<m && grid[x][y]=='C';
- }
- int main(){
- cin>>n>>m;
- For(i,n){
- string S;cin>>S;
- grid.pb(S);
- }
- int cnt=0;
- For(i,n)For(j,m)if(grid[i][j]=='G'){
- For(k1,4){
- int k2=(k1+2)%4;
- pi p1={i+dx[k1],j+dy[k1]};
- pi p2={i+dx[k2],j+dy[k2]};
- if(leg(p1.f,p1.s) && leg(p2.f,p2.s)){
- if(!done[{p1,p2}]){
- cnt++;
- done[{p1,p2}]=1;
- done[{p2,p1}]=1;
- goto done;
- }
- }
- }
- For(k1,4)For(k2,4)if(k1!=k2){
- pi p1={i+dx[k1],j+dy[k1]};
- pi p2={i+dx[k2],j+dy[k2]};
- if(leg(p1.f,p1.s) && leg(p2.f,p2.s)){
- if(!done[{p1,p2}]){
- cnt++;
- done[{p1,p2}]=1;
- done[{p2,p1}]=1;
- goto done;
- }
- }
- }
- done:;
- }
- cout<<cnt<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement