What I submitted has a solution class, this is the code from my system.

On Sat, 9 Jun 2018 at 02:55, Bartholomew Furrow <[email protected]> wrote:

> You don't have a Solution class with a main(String[] args) method, which
> Java submissions currently require. Could that be it?
>
> On Thu, Jun 7, 2018 at 8:23 AM darren ha <[email protected]> wrote:
>
>>
>> the following is my code for WaffleChoppers, which is part of 2018 1A
>> round.
>> I think i understand the problem and solved it correctly.
>> but the judge system tells me. 'Runtime Error'. I reviewed my code
>> several times. but no luck.
>> I can't find my code fault.
>> can anyone point me the bug ?
>>
>>
>> -------------- code starts from here -------------------
>>
>>
>> package codejam2018;
>>
>> import org.junit.Test;
>>
>> import java.io.BufferedReader;
>> import java.io.InputStreamReader;
>> import java.util.ArrayList;
>> import java.util.Scanner;
>>
>> import static org.junit.Assert.assertEquals;
>>
>>
>> public class WaffleChoppers {
>>
>>
>>     public static void main(String[] args) {
>>         Scanner in = new Scanner(new BufferedReader(new
>> InputStreamReader(System.in)));
>>         int t = in.nextInt();
>>         for (int i = 1; i <= t; ++i) {
>>             int R = in.nextInt();
>>             int C = in.nextInt();
>>             int H = in.nextInt();
>>             int V = in.nextInt();
>>
>>             int[][] m = new int[R][C];
>>             for (int j = 0; j < R; j++) {
>>                 String temp = in.next();
>>                 for (int k = 0; k < C; k++) {
>>                     m[j][k] = temp.charAt(k)=='.' ? 0:1;
>>                 }
>>             }
>>
>>             int r = solve(R,C,H,V,m);
>>
>>             System.out.println("Case #" + i + (r==-1?": IMPOSSIBLE":":
>> POSSIBLE") );
>>         }
>>     }
>>
>>     private static int solve(int R, int C, int H, int V, int[][] m){
>>         int chocolate=0;
>>         for (int r = 0; r < R; r++) {
>>             for (int c = 0; c < C; c++) {
>>                 chocolate+=m[r][c];
>>             }
>>         }
>>         if(chocolate==0) return 0;
>>         if(chocolate%( (H+1)*(V+1)) !=0) return -1;
>>
>>         int count=0;
>>         int k=0;
>>         int[] hi= new int[R];
>>         int target = chocolate/(H+1);
>>         for (int i = 0; i < R; i++) {
>>             for (int j = 0; j < C; j++) {
>>                 count+=m[i][j];
>>             }
>>             hi[i]=k;
>>             assert k<H+1;
>>             if(count>(k+1)*target) return -1;
>>             if(count==(k+1)*target) k++;
>>         }
>>
>>         // why not check k
>>         if(k!=H+1) return -1;
>>
>>
>>         target = chocolate/((H+1)*(V+1));
>>         int[] countH = new int[H+1];
>>
>>         k=0;
>>         for (int i = 0; i < C; i++) {
>>             for (int j = 0; j < R; j++) {
>>                 countH[hi[j]] +=m[j][i];
>>             }
>>
>>             int hitCount=0;
>>             for (int j = 0; j < H + 1; j++) {
>>                 if (countH[j]>(k+1)*target) return -1;
>>                 if (countH[j]==(k+1)*target) hitCount++;
>>             }
>>             if(hitCount==H+1) k++;
>>         }
>>
>>         if(k!=V+1) return -1;
>>
>>
>>         return 0;
>>     }
>>
>>
>>     private static int solve1(int R, int C, int H, int V, int[][] m) {
>>         int chocolate=0;
>>         for (int r = 0; r < R; r++) {
>>             for (int c = 0; c < C; c++) {
>>                 chocolate+=m[r][c];
>>             }
>>         }
>>         if(chocolate==0) return 0;
>>         if(chocolate%( (H+1)*(V+1)) !=0) return -1;
>>
>>         int target = chocolate/(H+1);
>>
>>         ArrayList<Integer> hsplit = new ArrayList<>();
>>
>>         int count=0;
>>         for (int i = 0; i < R; i++) {
>>             for (int j = 0; j < C; j++) {
>>                 count+=m[i][j];
>>             }
>>
>>             if(count>target) return -1;
>>             if(count ==target) {
>>                 hsplit.add(i);
>>                 count=0;
>>             }
>>         }
>>
>>         if(hsplit.size()!=H+1) return -1;
>>
>>         // first row
>>         target= chocolate/((H+1)*(V+1));
>>
>>         ArrayList<Integer> vsplit = new ArrayList<>();
>>         count = 0;
>>         for (int c = 0; c < C; c++) {
>>             for (int i = 0; i <= hsplit.get(0); i++) {
>>                 count +=m[i][c];
>>             }
>>             if(count > target) return -1;
>>             if(count==target){
>>                 vsplit.add(c);
>>                 count=0;
>>             }
>>         }
>>
>>         if(vsplit.size()!=V+1) return -1;
>>
>>         for (int hi = 1; hi < H+1; hi++) {
>>             int rs=hsplit.get(hi-1)+1;
>>             int re=hsplit.get(hi);
>>
>>             for (int vi = 0; vi < V+1; vi++) {
>>                 int cs = vi==0? 0 : vsplit.get(vi-1)+1;
>>                 int ce = vsplit.get(vi);
>>
>>                 count=0;
>>                 for (int r = rs; r <= re; r++) {
>>                     for (int c = cs; c <= ce; c++) {
>>                         count+=m[r][c];
>>                     }
>>                 }
>>
>>                 if(count!=target)return -1;
>>             }
>>         }
>>
>>
>>         return 0;
>>     }
>>
>>
>>  @Test
>>     public void test(){
>>         int[][] m3 = new int[][]{
>>                 {0,0,1,1},
>>                 {0,0,1,1},
>>                 {1,1,0,0},
>>                 {1,1,0,0}
>>
>>         };
>>         assertEquals(-1, solve(4,4,1,1, m3));
>>
>>         int[][] m = new int[][]{
>>             {0,1,1,0,0,1},
>>             {0,0,0,0,0,1},
>>             {1,0,1,0,1,1}
>>         };
>>         assertEquals(0, solve(3,6,1,1, m));
>>
>>         int[][] m2 = new int[][]{
>>                 {0,0,0,0,0},
>>                 {0,0,0,0,0},
>>                 {0,0,0,0,0},
>>                 {0,0,0,0,0},
>>                 {0,0,0,0,0}
>>         };
>>         assertEquals(0, solve(4,5,1,1, m2));
>>
>>
>>         int[][] m4 = new int[][]{
>>                 {0,1,0,1},
>>                 {1,0,1,0},
>>                 {0,1,0,1},
>>         };
>>         assertEquals(-1, solve(3,4,1,2, m4));
>>
>>         int[][] m5 = new int[][]{
>>             {1,0,1,1},
>>             {1,1,0,1},
>>             {1,0,1,1},
>>         };
>>         assertEquals(0, solve(3,4,2,2, m5));
>>
>>
>>
>>         int[][] m6 = new int[][]{
>>             {1,1,1},
>>             {1,0,1},
>>             {1,0,1},
>>             {1,1,1}
>>         };
>>         assertEquals(-1, solve(4,3,1,1, m6));
>>
>>     }
>>
>> }
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Code Jam" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/google-code/7452030e-3a21-4320-978f-c646a6031f97%40googlegroups.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Code Jam" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-code/CAHaiWHN6mfcPsaWiyXr9-YyUYYKHvYof7nD5E6%2BoHnL3ObQZ-g%40mail.gmail.com
> <https://groups.google.com/d/msgid/google-code/CAHaiWHN6mfcPsaWiyXr9-YyUYYKHvYof7nD5E6%2BoHnL3ObQZ-g%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
-- 
- Chinemerem

-- 
You received this message because you are subscribed to the Google Groups 
"Google Code Jam" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-code/CANZ9FwjaCysKu4OW8p_o-JbiyrYfyQxfnTPSfz2gdQRKdzuPNw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to