2019-05-14 15:10:35 C++

C++

Copy Copied! Full
#include <bits/stdc++.h> using namespace std; char s[12][12]; bool v[12][12]; long long ans; int dx[4]={-1,0,0,1}; int dy[4]={0,-1,1,0}; int H,W,T; //i,jは座標でaは1の個数 b はxの個数 void dfs(int x,int y,int a,int b){ if(s[x][y]=='G'){ //結果を計算する cout << "1が" << a <<"個"; cout << " xが" << b <<"個"<<endl; return; } //上下4マスが未訪問かどうか調べる for(int k=0;k<4;k++){ if(x+dx[k]<0 || x+dx[k]>=H || y+dy[k]<0 || y+dy[k]>=W)continue; if(v[x+dx[k]][y+dy[k]]==false){ v[x+dx[k]][y+dy[k]]==true; if(s[x+dx[k]][y+dy[k]]=='#'){ dfs(x+dx[k],y+dy[k],a,b+1); }else{ dfs(x+dx[k],y+dy[k],a+1,b); } v[x+dx[k]][y+dy[k]]==false; } } } int main(void){ cin >> H >> W >> T; for(int i=0;i<H;i++){ for(int j=0;j<W;j++){ cin>>s[i][j]; } } /* for(int i=0;i<H;i++){ for(int j=0;j<W;j++){ if(s[i][j]=='S'){ v[i][j]=true; dfs(i,j,0,0); v[i][j]=false; } } }*/ for(int i=0;i<H;i++){ for(int j=0;j<W;j++){ cout << s[i][j]; } cout << endl; } cout << ans <<endl; }
RECOMMEND