1 solutions

  • 0
    @ 2023-12-3 20:55:10

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    using LL=long long;
    using PLL=pair<LL,LL>;
    const LL INF=0x3f3f3f3f3f3f3f3f;
    const double EPS=1e-10;
    
    const int N=5e1+10;
    char g[N][N];
    
    void solve() {
    	LL r,c;
    	cin>>r>>c;
    	for (LL i=1; i<=r; i++) {
    		for (LL j=1; j<=c; j++) {
    			cin>>g[i][j];
    		}
    	}
    	
    	vector<PLL> ans;
    	for (LL i=1; i<=r; i++) {
    		for (LL j=1; j<=c; j++) {
    			bool horizontal=(j+2<=c&&
    							 g[i][j]=='.'&&
    							 g[i][j+1]=='.'&&
    							 g[i][j+2]=='.'&&
    							 (j==1||g[i][j-1]=='#'));
    			bool vertical  =(i+2<=r&&
    							 g[i][j]=='.'&&
    							 g[i+1][j]=='.'&&
    							 g[i+2][j]=='.'&&
    							 (i==1||g[i-1][j]=='#'));
    			if (horizontal || vertical) {
    				ans.push_back({i,j});
    			}
    	  	}
    	}
    	
    	cout<<ans.size()<<"\n";
    	for (const auto &item : ans) {
    		cout<<item.first<<" "<<item.second<<"\n";
    	}
    }
    
    int main() {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie (0);
    	
    	//freopen("crosswords.in", "r", stdin);
    	//freopen("crosswords.out", "w", stdout);
    
    	int T=1;
    	//cin>>T;
    	for (int i=1; i<=T; i++) {
    		//cout<<i<<"\n";
    	    solve();
    	}
    	return 0;
    }
    
    
    • 1

    USACO 2014 December Contest&#44; Bronze —— Problem 2. Crosswords

    Information

    ID
    1302
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By