Source code for submission s926

Fm.java

  1.  
  2. import java.util.Scanner;
  3.  
  4.  
  5.  
  6. /**
  7.  *
  8.  * @author cteam023
  9.  */
  10. public class Fm {
  11. private boolean [][] table;
  12. private int kartaR;
  13. private int kartaS;
  14.  
  15.  
  16. public Fm(boolean[][] matice, int kartaR, int kartaS){
  17. this.kartaR = kartaR;
  18. this.kartaS = kartaS;
  19. table = new boolean[matice.length + kartaR - 1][matice[0].length + kartaS - 1];
  20. for (int i = 0; i < matice.length; i++){
  21. for (int j = 0; j < matice[0].length; j++){
  22. if (matice[i][j]){
  23. for (int a = i; a < i + kartaR; a++){
  24. for (int b = j; b < j + kartaS; b++){
  25. table[a][b] = true;
  26. }
  27. }
  28. }
  29. }
  30. }
  31.  
  32. }
  33.  
  34. public void vypisVysledek(){
  35. int counter;
  36. int min = Integer.MAX_VALUE;
  37. for (int ri = 0; ri < kartaR; ri++){
  38. for (int si = 0; si < kartaS; si++){
  39. counter = 0;
  40. for (int i = ri; i < table.length; i+= kartaR){
  41. for (int j = si; j < table[0].length; j+= kartaS){
  42. if (table[i][j]){
  43. counter++;
  44. }
  45. }
  46. }
  47. if (counter < min){
  48. min = counter;
  49. }
  50. }
  51. }
  52. System.out.println(min);
  53. }
  54.  
  55.  
  56. public static void main(String[] args) {
  57. Scanner sc = new Scanner(System.in);
  58. int radku, sloupcu;
  59. int kartaR, kartaS;
  60. boolean [][] matice;
  61. String radek;
  62. while (sc.hasNextInt()){
  63. radku = sc.nextInt();
  64. sloupcu = sc.nextInt();
  65. kartaR = sc.nextInt();
  66. kartaS = sc.nextInt();
  67. matice = new boolean[radku][sloupcu];
  68. sc.nextLine();
  69. for (int i = 0; i < radku; i++){
  70. radek = sc.nextLine();
  71. for (int j = 0; j < sloupcu; j++){
  72. matice[i][j] = radek.charAt(j)=='X' ? true : false;
  73. }
  74. }
  75. Fm pripad = new Fm(matice, kartaR, kartaS);
  76. pripad.vypisVysledek();
  77. }
  78.  
  79. }
  80.  
  81. }
  82.