Statistics

Problem Statement for "FoxPickingFlowersDivTwo"

Problem Statement

Fox Jiro came to a flower shop to buy flowers. The flowers in the shop are arranged in some cells of a rectangular grid. The layout of the grid is given as a String[] flowers. If the j-th cell of the i-th row of the grid contains a flower, then the j-th character of the i-th element of flowers will be 'F'. (All indices in the previous sentence are 0-based.) If the particular cell is empty, the corresponding character will be '.' (a period).


In order to buy flowers, Jiro has to draw a rectangle on this grid and buy all the flowers which lie inside the rectangle. Of course, the sides of the rectangle must be on cell boundaries. (Therefore, the sides of the rectangle will necessarily be parallel to the coordinate axes.)


Jiro wants to buy as many flowers as possible. Unfortunately, he cannot select the entire grid. Eel Saburo came to this shop before Jiro. Saburo has already drawn his rectangle. Saburo's rectangle contains just a single cell: the c-th cell of the r-th row of the grid. (Again, both indices are 0-based.) Jiro's rectangle may not contain this cell.


You are given the String[] flowers and the ints r and c. Return the maximum possible number of flowers Jiro can buy in this situation.

Definition

Class:
FoxAndFlowerShopDivTwo
Method:
theMaxFlowers
Parameters:
String[], int, int
Returns:
int
Method signature:
int theMaxFlowers(String[] flowers, int r, int c)
(be sure your method is public)

Constraints

  • flowers will contain R elements.
  • R will be between 2 and 10, inclusive.
  • Each element of flowers will contain C characters.
  • C will be between 1 and 10, inclusive.
  • Each character in flowers will be either 'F' or '.'.
  • r will be between 0 and R - 1, inclusive.
  • c will be between 0 and C - 1, inclusive.

Examples

  1. {"F.F", ".F.", ".F."}

    1

    1

    Returns: 2

    The forbidden cell is the one in the middle. Jiro can buy two flowers by drawing a rectangle that contains the entire first row.

  2. {"F..", "...", "..."}

    0

    0

    Returns: 0

    There are no flowers Jiro can buy.

  3. {".FF.F.F", "FF...F.", "..FF.FF"}

    1

    2

    Returns: 6

  4. {"F", ".", "F", "F", "F", ".", "F", "F"}

    4

    0

    Returns: 3

  5. {".FFF..F...", "FFF...FF.F", "..F.F.F.FF", "FF..F.FFF.", "..FFFFF...", "F....FF...", ".FF.FF..FF", "..F.F.FFF.", ".FF..F.F.F", "F.FFF.FF.F"}

    4

    3

    Returns: 32

  6. {"F","F"}

    0

    0

    Returns: 1

  7. {".","."}

    0

    0

    Returns: 0

  8. {"F","."}

    0

    0

    Returns: 0

  9. {".","F"}

    0

    0

    Returns: 1

  10. {"F","."}

    1

    0

    Returns: 1

  11. {"F.",".F"}

    0

    0

    Returns: 1

  12. {"F.F..","F...F","F....","F..F.","F.F.."}

    2

    1

    Returns: 5

  13. {"FFF","FFF","FFF"}

    0

    0

    Returns: 6

  14. {"FFF","FFF","FFF"}

    1

    0

    Returns: 6

  15. {"FFF","FFF","FFF"}

    2

    0

    Returns: 6

  16. {"FFF","FFF","FFF"}

    0

    2

    Returns: 6

  17. {"FFF","FFF","FFF"}

    1

    1

    Returns: 3

  18. {"..","..","..","..","..",".F",".."}

    6

    1

    Returns: 1

  19. {"..F....","FFFFF..","F..F.FF","...F.FF","F.FFF..","F.FFF.F","FFF.F..","..FF.F.","FF.FFFF"}

    0

    3

    Returns: 34

  20. {"F.F.",".FF.","F...","F.F.","FF.F","F..F","F.F.","F..F","F.FF"}

    7

    2

    Returns: 14

  21. {"FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF","FFFFFF"}

    4

    5

    Returns: 40

  22. {".F...","FFF.F","F...F","..FFF","..F.F","F.F.F","...F.","..F..",".FF.F"}

    3

    3

    Returns: 12

  23. {"..F..F.F","F.F..F.."}

    0

    2

    Returns: 3

  24. {"..","..",".."}

    1

    0

    Returns: 0

  25. {"FF.....","F......",".......",".......",".......","...F..F",".......","....F.."}

    7

    5

    Returns: 5

  26. {"..","..","..","..","..","..","..",".."}

    7

    1

    Returns: 0

  27. {"......","......","......","F.....","F.....","......","......"}

    5

    3

    Returns: 2

  28. {"...","...","...","..F",".F.","..F"}

    4

    0

    Returns: 3

  29. {"..F.F.F.","...FF...","...F....","........","..FF....","........"}

    1

    7

    Returns: 8

  30. {"...","..F"}

    0

    1

    Returns: 1

  31. {"...F",".F..","....","....","....","....","....","....",".F.F","...."}

    0

    1

    Returns: 3

  32. {".......","...F...",".......",".......",".F.....",".......","...F..F"}

    2

    2

    Returns: 3

  33. {"..FFF","F.FF.","FF...","..F.F",".F...","F....",".F..."}

    6

    0

    Returns: 12

  34. {"..F.FF...","..FFFF..."}

    1

    3

    Returns: 4

  35. {"...F..","......","......",".....F","......","......","......","......","......","......"}

    9

    4

    Returns: 2

  36. {".....FF..F","..........","..........","..........",".....F....","........F."}

    0

    4

    Returns: 5

  37. {"FF..FF..","F..FF.F.",".....FFF",".F..F.F.","F.F.FF..","F.F..FF.",".F.....F","FF...FF.",".....F..",".F.F..F."}

    7

    4

    Returns: 24

  38. {"....F..","F....F.","FF.F..."}

    2

    5

    Returns: 5

  39. {".........",".........",".........",".........",".........",".........",".........",".........","........."}

    2

    8

    Returns: 0

  40. {".",".","F",".",".",".",".","."}

    5

    0

    Returns: 1

  41. {"FFFFFFFFF","F.F.FFFFF","F.F.FFFFF",".FFFFFFF."}

    0

    4

    Returns: 21

  42. {"FFFF.F","F..FFF","FF.FFF","FFFFFF","FFFFF.","F.FFF."}

    2

    0

    Returns: 23

  43. {"F","F",".",".","F"}

    3

    0

    Returns: 2

  44. {"..","..","..","..",".."}

    0

    1

    Returns: 0

  45. {"......F..","F........","...F...F.","..F.FF.FF","..F......","..F....FF",".F..FF..F",".F..FF..F","F.F...F.F","FF......."}

    8

    7

    Returns: 21

  46. {"F..","...","F..",".FF"}

    3

    1

    Returns: 2

  47. {".F.F.....","..F...FF.","...F...F.","....F.F..",".......F.",".....F..F","..FF.....","FF.F....."}

    6

    6

    Returns: 12

  48. {"FFFFFFF","FFFFFF.","FFFFFFF","FFFFFFF","FFFFFFF","FF.FFFF"}

    3

    2

    Returns: 23

  49. {".FF.F...F",".FFFF.F..","FFF.F..F.","...FF....","FF.F.F.FF","FFFF..FFF"}

    0

    6

    Returns: 25

  50. {".....F...","..F...F.."}

    0

    7

    Returns: 3

  51. {"F.F","FFF","FF."}

    1

    1

    Returns: 3

  52. {".",".","F","F"}

    1

    0

    Returns: 2

  53. {"F.","FF","F.","FF","F.","FF",".F",".."}

    7

    0

    Returns: 10

  54. {"..","..","F.","..",".."}

    0

    0

    Returns: 1

  55. {"FFF.FFFFF.",".FF.FFFFFF","FF..FFFFFF","FFFFFFF.FF","F..FF.FFFF","FF.FFF.FF.","FFFFFFFFFF","FFFFFFFFFF"}

    1

    6

    Returns: 51

  56. {"..","..","..","..","..","..",".F"}

    2

    1

    Returns: 1

  57. {".F..F.F...",".F..F.....","..........","F.........","...F......",".F........","........FF","..........","....F.....",".......F.."}

    1

    6

    Returns: 8

  58. {"........FF","..F.......","...F.F....","..F.......","....F...F.","....F.....",".F.......F","..F...F...","..........","....F...F."}

    0

    0

    Returns: 15

  59. {".FF......F","...F......","FF...F....",".....F....",".F.F.....F","...F.F....","F.F.FFF..F","....F...F.",".FF.......","..F......F"}

    8

    3

    Returns: 21

  60. {"....FF...F",".F.FF...F.","......FF.F","..F..F.F.F",".FFF.FF.FF","FF.F.F..FF","F..F..F.FF","F.F.F.F.FF","FF.......F","....F..F.."}

    9

    2

    Returns: 41

  61. {"F..F......","F.FF.F.FFF","FF....FF..",".F..F...F.","..F...FF..","F.F..F.FF.","...F.FF...",".F..F.FF.F","...FF..FFF",".F..F..FFF"}

    4

    1

    Returns: 34

  62. {"..F.F....F","FF....F..F",".FFFFFFF.F","..FFFFFF.F","F.F.F.F.FF","FFFF..F..F","..FFF.FFFF","...FF...FF",".FFFF..FF.",".F...F..F."}

    4

    1

    Returns: 46

  63. {"FF.FF.FF..","FFF..FFFF.","FFFFFFF.FF","FFFFF.FFFF","...F.F..FF","...FF.FF.F","FF.FFFF.FF","...FF..FFF","F.FFF.FFF.","F..FF.FFFF"}

    9

    4

    Returns: 60

  64. {".FFFF..F.F","FFFFFFFFFF","FFF.FFF.FF","FFF.F..F.F","..F.F.FFFF","..F.FF.F..","FFF.FFFFFF","FF..FFFFFF",".FFFFF.FFF","FFFF.FFFFF"}

    2

    7

    Returns: 50

  65. {"F.FFFFFFFF","FFFFF.FFF.","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFF..FFFF","FFFFF.FF.F","FFFFFFFFFF","FF.F.FFFF.","F.F.FFFFFF"}

    9

    3

    Returns: 80

  66. {"FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF","FFFFFFFFFF"}

    0

    4

    Returns: 90

  67. {"F", "F" }

    0

    0

    Returns: 1

  68. {"FF...", "FF...", "FF..." }

    1

    2

    Returns: 6

  69. {"F..", "F..", "F.." }

    1

    1

    Returns: 3

  70. {"..FF", "..FF", "..FF", "..FF" }

    1

    1

    Returns: 8

  71. {".FFF..F...", "FFF...FF.F", "..F.F.F.FF", "FF..F.FFF.", "..FFFFF...", "F....FF...", ".FF.FF..FF", "..F.F.FFF.", ".FF..F.F.F", "F.FFF.FF.F" }

    4

    3

    Returns: 32

  72. {"..F", "..F", "..F" }

    1

    1

    Returns: 3

  73. {".FF", "FFF", "FFF" }

    0

    0

    Returns: 6

  74. {"F.F", "...", "F.." }

    1

    1

    Returns: 2

  75. {".FF.F.F", "FF...F.", "..FF.FF" }

    1

    2

    Returns: 6

  76. {".", "F" }

    0

    0

    Returns: 1

  77. {".FFF..F...", "FFF...FF.F", "..F.F.F.FF", "FF..F.FFF.", "..FFFFF...", "F....FF...", ".FF.FF..FF", "..F.F.FFF.", ".FF..F.F.F", "F.FFF.FF.F" }

    1

    1

    Returns: 43

  78. {"FF.", "FF.", "FF." }

    0

    2

    Returns: 6

  79. {"...", "FF.", "..." }

    1

    1

    Returns: 1

  80. {"F..", "...", "...", "..F" }

    0

    0

    Returns: 1

  81. {"FFF", "FFF", "FFF" }

    1

    1

    Returns: 3

  82. {"FF", "F." }

    1

    1

    Returns: 2

  83. {"...", "F..", "..." }

    1

    1

    Returns: 1


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: