Go to diff to previous submission
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package folded; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; /** * * @author cteam028 */ public class Main { /** * @param args the command line arguments */ try { Main fm = new Main(); fm.init(); //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } String line; while((line = br.readLine()) != null) { // String a[] = line.split(" "); final int[] arr = new int[4]; parseIntArr(line.toCharArray(), arr); final int Ar = arr[0]; final int Ac = arr[1]; final int Tr = arr[2]; final int Tc = arr[3]; // int Ar = Integer.parseInt(a[0]); // int Ac = Integer.parseInt(a[1]); // int Tr = Integer.parseInt(a[2]); // int Tc = Integer.parseInt(a[3]); int pole[][][][] = new int[Tr][Tc][(Ar/Tr) + 2][(Ac/Tc) + 2]; int minPole[][] = new int[Tr][Tc]; for(int x=0; x < Ar; x++) { line = br.readLine(); char[] text = line.toCharArray(); for(int y=0; y < Ac; y++) { boolean inMap = (text[y] == 'X'); if(inMap){ for (int dx = 0; dx < Tr; dx++) { for (int dy = 0; dy < Tc; dy++) { if(pole[dx][dy][(x + dx)/Tr][(y + dy)/Tc] == 0){ pole[dx][dy][(x + dx)/Tr][(y + dy)/Tc] = 1; minPole[dx][dy] ++; } } } } } } for (int dx = 0; dx < Tr; dx++) { for (int dy = 0; dy < Tc; dy++) { /*int pocet = 0; for (int idxx = 0; idxx < (Ar/Tr) + 2; idxx++) { for (int idxy = 0; idxy < (Ac/Tc) + 2; idxy++) { if(pole[dx][dy][idxx][idxy] == 1) pocet++; } }*/ } } bw.newLine(); } bw.flush(); } public static void parseIntArr(char[] arr, int[] target) { int i = 0; int acc = -1; for(char ch :arr) { if(ch == ' ') { if(acc!= -1) { target[i++] = acc; acc = -1; } } else if(acc == -1) acc = ch - '0'; else acc = acc * 10 + (ch - '0'); } if(acc != -1) target[i] = acc; } }
--- c5.s606.cteam028.fm.java.0.Main.java +++ c5.s638.cteam028.fm.java.0.Main.java @@ -7,6 +7,8 @@ import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.io.OutputStreamWriter; /** @@ -30,4 +32,5 @@ public void init() throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String line; @@ -50,4 +53,6 @@ int pole[][][][] = new int[Tr][Tc][(Ar/Tr) + 2][(Ac/Tc) + 2]; + int minPole[][] = new int[Tr][Tc]; + for(int x=0; x < Ar; x++) { line = br.readLine(); @@ -58,5 +63,9 @@ for (int dx = 0; dx < Tr; dx++) { for (int dy = 0; dy < Tc; dy++) { - pole[dx][dy][(x + dx)/Tr][(y + dy)/Tc] = 1; + if(pole[dx][dy][(x + dx)/Tr][(y + dy)/Tc] == 0){ + pole[dx][dy][(x + dx)/Tr][(y + dy)/Tc] = 1; + minPole[dx][dy] ++; + } + } } @@ -69,5 +78,5 @@ for (int dx = 0; dx < Tr; dx++) { for (int dy = 0; dy < Tc; dy++) { - int pocet = 0; + /*int pocet = 0; for (int idxx = 0; idxx < (Ar/Tr) + 2; idxx++) { for (int idxy = 0; idxy < (Ac/Tc) + 2; idxy++) { @@ -75,13 +84,15 @@ } - } - min = Math.min(min, pocet); + }*/ + min = Math.min(min, minPole[dx][dy]); } } - System.out.println(min); + bw.append(Integer.valueOf(min).toString()); + bw.newLine(); } + bw.flush(); }