fork download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cstring>
  5. char s[52][52];
  6. int r,c,a,b,cnt,p,a1,b1,visit[52][52];
  7. void dfs(int i,int j)
  8. {
  9. if(i<0 || j<0 || i>=r || s[i][j]=='\0')return;
  10. if(s[i][j]=='#' || s[i][j]=='1')return;
  11. if(visit[i][j])return;
  12. visit[i][j]=1;
  13. if(s[i][j]=='G')
  14. {
  15. s[i][j]='.';
  16. cnt++;
  17. }
  18. if(j<(c-1) && s[i][j+1]=='T')s[i][j]='1';
  19. if(j>0 && s[i][j-1]=='T')s[i][j]='1';
  20. if(i>0 && s[i-1][j]=='T')s[i][j]='1';
  21. if(i<(r-1) && s[i+1][j]=='T')s[i][j]='1';
  22. if(s[i][j]=='1')return;
  23. dfs(i,j+1);
  24. dfs(i+1,j);
  25. dfs(i-1,j);
  26. dfs(i,j-1);
  27. }
  28. int main()
  29. {
  30. int i,j,tr;
  31. while(scanf("%d%d",&c,&r)==2)
  32. {
  33. memset(visit,0,sizeof(visit));
  34. tr=cnt=0;
  35. getchar();
  36. for(i=0;i<r;i++)
  37. gets(s[i]);
  38. for(i=0;i<r;i++)
  39. {
  40. for(j=0;s[i][j]!='\0';j++)
  41. {
  42. if(s[i][j]=='P')
  43. {
  44. tr=1;
  45. a=i;
  46. b=j;
  47. dfs(i,j);
  48. break;
  49. }
  50. }
  51. if(tr)break;
  52. }
  53. printf("%d\n",cnt);
  54. }
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 3356KB
stdin
16 25
################
####G..G.#GGTT##
##.##GG#GT#G#G##
#GG#..G.#G.T#.T#
#.GGTG#.G##G.GT#
#TG.#GTT.TG#T..#
#.#T##T.#..#TT.#
#GTGTT..TGGTTG.#
#..##T.TGGG#..T#
#GGGGTG##.TG.#T#
#G#G.###.#..#.##
##..#...T.T.##.#
#TGGT.GTT..PGT##
#G.T#TGTGGG.T.G#
#GT#G#.G.#TG.G.#
#.TT.G.T#.##.#T#
#GTTT#.TG#TGG#G#
#.#G..T#GGG#G#G#
#.TTG##TTT#TG.T#
#G##GG#.G.TGGT##
#GG#.T...TGG####
###..GT.G.#G..G#
#.T#.TG##.#TG###
#.TGT..G.T..GTG#
################
6 16
######
##.T.#
#.GT.#
###.G#
#G#TG#
#GGGG#
#.TG.#
#TT.T#
##..G#
##T.##
#TGT.#
#P.G.#
#..TG#
#.TG.#
#TT.G#
######
9 24
#########
#.#.GTG.#
#.TGGG.G#
#.#.G####
###..T.##
###T#GG##
#TGTGTTG#
#TGTT.GT#
#T..GPT##
#.#TTT..#
#.G.TTG##
##TG#.G.#
#G.GTT.T#
#TG.G#T##
#.GT#GG.#
##G#G####
#T##T####
#.T.GT.G#
#.G#.G.T#
#TGT.G..#
##TT...G#
#TT.G##G#
#.TT.T.##
#########
21 26
#####################
#.G#..T#G#TG##T.T##.#
##TT.G#.#G##.T#TG####
##TG#.#G#.#G#G#.G##.#
#T#T.##T.#.#T#.TG#.G#
#G##TG..G.T###G.T#T.#
##.#GGG.TTTGTT#G#..T#
#.#.TGTT..GG##.G#GTT#
#T###..G.#.#.#G#.GGT#
#..T.T..TT.##GGG#G..#
#.T##TT#.G..T####.TT#
#T#G.GGGG.GG#.TGT#TG#
###.T.TG#...GG#GG#TG#
#.GG.#.G#T.GTT#G#TT##
#.T#.T#T##..##.#TT###
#..T.G#TGG.T.##TTG.##
####TGGG.#TTGGGTGG.T#
#G.GT#.G.GG..#TT.TT.#
#G.GT.GTGGT.#T.#.TT.#
#T#.GTTT#G#.....G#.##
#.G.##TTGG.#.GG#GT.T#
#...###TT.GGT.GGT#T.#
#.T#TG#T###T.TG#.#TT#
#.GTGTGGTT..G#G#.TGG#
#.P##TT.TG#GT..TG.#G#
#####################
19 14
###################
###T.TGGTG.G#GTT#T#
#.##.T..TTGTT#G.GT#
##TT#.T#..#GGG#.#G#
##GG#TTP###G##G.G##
#G.TTTGG.GGG#.#.###
#.G.G#T.#.T##TG#GT#
#.TT.T#.TG...T##TT#
#...#T#..TGG.TT.#.#
##.T#GTTGT##...####
#G.T.##G#TTGG....G#
#T.T#.#GT#.TGT.TGG#
#G##GTGTTGTG.GGG.T#
###################
5 6
#####
#G#T#
#T###
#PT.#
##TG#
#####
16 3
################
#G#.G..G.P.G#G.#
################
20 27
####################
##..TTGGG#GT#T.#.###
##T#TG..G#TT...##GG#
#.TGTTT.#GTT#...#G.#
#TG..TG#GGT#GTTTT#.#
##TT##.G##.G.#T.TGG#
###G#.P##GGGT#..GGT#
##.TG#GGT#TGGTG#GGG#
#.##G##TTTTT##.TGG.#
#GGG.#G..GT.GT....T#
##G#.T.TG..G.#G...T#
#.#TG.GGG..G#T#..TG#
#..G##GTGTG.G#....##
#......TGTG.#T#TTG.#
##TG.#..G##.TT#TGTG#
#..GG..#G#G##.GG..##
#.##TTT.#.G#TGTGGT.#
#..GT.#G.#G#T#T.G.G#
#T##G#GT#TT##TT#T.T#
#..GT..#TGTT.##TG#.#
#TGT#T.T#T..GG#.T.##
#GT.G.GGT#TTGT#G#T##
###G.TG.T####G#...##
#...TGTTT.#GGG##GT.#
#GGT.#.T##GTT.GG#TG#
#.##.G#.GG#TTTTT#G.#
####################
13 12
#############
###TTP#T..T.#
#T.##TT#T..##
#TT..T#T..TT#
#T##..T#TGGG#
####GG..G#GT#
#TG#GTT..#TT#
#GGT#.##.#TT#
#GTTGGT#T#.T#
#T.##.TTG.TG#
#G..###G..TG#
#############
24 28
########################
#.TT####TGT#TTT.TT#T.G.#
#G..T.G#G#TT..GTTT##...#
#T#T#T##TT#TG.GGTG.###T#
##G..#T#TT.G##TGG#T#.#T#
#G##GTG#GTGGG.###..T.T.#
#GT..#T#G##.G.GGTG##G#T#
##G.#.TTGG#TGTGT.GG#.GT#
#GT#G.GTT#.#TTT#.#.T..##
#.GTGG..TG.#.GT.T#TGG.##
##TTGG#..G.GT.GT#TT#.G##
#GG..T..GTT##T#GT#GG##.#
##.TGG..TTGTG.#G#.TGTGT#
#.G#TT#..T##.###T.GTGGG#
#.G.##..#G##.G.T.#.TG#.#
#.GT#G#.T.#T#G.T.TTTGGT#
#.#T#T##.#T..GGT.TGT##T#
##.G.TT.T...GTG#..GT..T#
#.TGGTT#G#G.#GG..###T#.#
##T.TTGGTT.#T..##.G#.###
#.T#TGG.#GT..#T..#G#GT##
#P..G..##TTT#..#.#T..G##
#TTTG.T..#T.TT#G.GTGTG.#
#G#.#.#TGT.T#.TG#G#..GG#
#TGGT#G.#G.G.#GT.G##TT##
##TG..G#.GGGGT#TGGTGGG##
#GTTGGG#T#G##.T##T.#T..#
########################
18 15
##################
#TG.T#G..G..#GT.##
#G#.#GGT#TT#GT#..#
##.GG....#.##GTGG#
#.G.GGG##TG#.###G#
#T#GG#G.G.T..#.G##
#..#G.G#TTGG.##G.#
#PGG.#G...G#..T.T#
#T#.TT..#G.#G#GGT#
#TGT.TG#GGG..##G.#
#G.G#..G.#..G..#G#
#G.GT.#T..T.T..GG#
#.G##.#TTTT#TGGTG#
#.TT#G.T.GGG.GG..#
##################
27 16
###########################
#G#GT.##G#GGTT#.TTTGTTGGTG#
#GGGTT.TGG.P.#T.TTG#.##G..#
#TGGTG##G###G#.G##.GG.TT.G#
#GT#TGT#GT.G.TT#G.####GTTG#
#TG##.#.GGGGT#G#TT#.#G.T#T#
#.GTGTTT#.GTT.#T.##T.T#G.T#
##.G.TT#T#.#GGG.G#T.G###T.#
#T##TT..GG#TTT#GGGGGT.T.GG#
#...TG#.#GG.GG.G#GT.#T.#TG#
#.TT#TTTGG.G.##.#T.#G.TGTG#
###GTGGGTT.##G....#T#TG.T##
#GG.GTG.GGGGGGTT...G##.#GT#
#G#T......GT..T..T..#G.T..#
#G####.#GGT.GT..TG#GTT.#G##
###########################
7 3
#######
#.PGTT#
#######
26 14
##########################
#TG..G.G.#T.GTGTG#T##TG.G#
#GT#.G####TT#GTT##G#.G..##
#GTGTTGT#T.TTT..GGG#GTG#.#
#GG#T.T...GGGG##TTG#..#.G#
##TGGT..#.#...####..#TT.##
#T#TTGGT##T#.G#TGGG...T#T#
#GTGT#.GGTTTTP##GG.#.GGTG#
#GT.GGG##T.##TT#T.G#G#GG##
#G.TG.#GGG.GG.##GTG.##TGT#
#T#T..#T.T..GT.GT#G#T#G#.#
#TT#.##GGGT...T#GGTTTGT.##
##TGGT#G#.#TTGTTG.TG###.##
##########################
7 3
#######
#PT#..#
#######
10 10
##########
#TG.G#TT##
##.#TPG#G#
##T.GT..T#
#G#GGT.G##
#GG#G#.#G#
#TT#.TT..#
###..T#GT#
#GTT#GTGT#
##########
28 17
############################
#T...G##T.TGT..GG#GT#T.G#GT#
#.#.GTTGTGG.###.#.##.#G..#T#
##...G#T.##G#.G.##TGT...T#T#
#T#TG...##P.G.###.TT.GG#TG.#
#GG.##G.GT..T#T.TT.GGT.T##T#
##G#.G#..GT.G#T.T##.T.GG.GT#
##TGT##TGTT.GG.#G.GT.T.TGGG#
#TTGT##.#.TTT###T..GT.GTG.##
#.G..GGGGT..GT###.GT#TGTTTG#
#T#GGG.G.#T..TT#GT...##..GG#
#.T#GT.#TG#GG#.TT#.#G.G.#.T#
#T.GT...T.GTT#TG#T#T...##.T#
##.GTGTGT#GGTTG##TG.T#T.GG.#
#.#T...#.G#GT..TGG#G#TT#G.T#
#T#TTTG.#..TT##G...#G.##.T.#
############################
8 18
########
#GT#T.G#
####TTG#
#.G#..T#
##TT#..#
#TG.#G.#
##GGT#.#
#TG#.T.#
#.G.T.##
###..G.#
#.T.#G.#
#T#GT.##
#TG#.G.#
##.G#PT#
#.G.TG.#
#T.#.#G#
#.#TT###
########
20 27
####################
###TTTTT.#T.T#.GG###
#.T##...T#GTT#.G.GT#
#G#G#..GT.GTT.G#T#T#
#T##.#.GG#GG.TGTT.G#
#T.TG..T#.GG#TTGGG##
#.G.#T.T#.#G##TT.TT#
###.##.GGGGGG#.TTT##
#G#GGGG##TG##TGTG#.#
#G#.G#.TT.##GG..G..#
#TT##TGT#G#..T.TT.G#
#GGT.#.G##..T#G.G#G#
#G..TT#G.TTGGTGT#G.#
##G#G.T#TTT#.T#.G.G#
##...T.G#GTTGGP.G#.#
#..TGG##GGT.GG..G.##
#T##.#.G#G.##.T#G###
#.G#.TT.#T##GT.#.#T#
#....##TT..#T#T#GG.#
##.T.#...#T#T#TG#G##
#G#G.T#T...G.###GTG#
#.G.#T#.G..#GT##TT.#
#.#.#T.TGTGG#G.#GT.#
##G.T.TTT..#T.#.#GT#
#T#T##TG#G###TG#T###
##..#.T.#.#GG.T#G.G#
####################
20 10
####################
#TTG#T#..G#..G#T.GG#
#TGGTT#TG#..TTG#T#.#
#.#.GG#.GGG.GTGGTTT#
#G.T##G..GTG#T.GG.G#
##.G#..#GG##T.#GGG##
#GGTGTT##T.#G.G.G#.#
#.G..#TTT.TPTGGTGTT#
#T.GGG.#G#.G#T.###T#
####################
stdout
1
0
0
1
0
0
3
4
0
0
0
4
1
0
0
0
4
0
13
0