Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Dwite round 2 problem 3
Index -> CompSci.ca, Contests -> DWITE
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
MagicIdiot




PostPosted: Thu Nov 25, 2010 12:36 am   Post subject: Dwite round 2 problem 3

Aww I got 4/5 on it.

For the last test case,
input:
......6.
.6.....3
...#4.75
7......2
..9.....
.....53.
.8.6....
4..5.9..
--------

My output: 33 (correct answer is 41)

In Java:

code:

import java.awt.*;
import java.io.*;

public class EscapeAndLoot
{

    public static void main (String[] args) throws IOException
    {
        BufferedReader input = new BufferedReader (new FileReader ("DATA3.txt"));
        PrintWriter output = new PrintWriter (new FileWriter ("OUT3.txt"));
        String line;
        char[] [] grid = new char [8] [8];
        int r = 8;
        int c = 0;
        int MAXCOL = 8;
        for (int a = 0 ; a < 5 ; a++)
        {
            for (int i = 0 ; i < 8 ; i++)
            {
                line = input.readLine ();
                for (int j = 0 ; j < 8 ; j++)
                    grid [i] [j] = line.charAt (j);
            }
            output.println (recurse (grid, r - 1, c));
            line = input.readLine ();
        }
        input.close ();
        output.close ();
    }


    public static int recurse (char grid[] [], int row, int col)
    {
        if (row == 0 && col == 7)
        {
            if (grid [row] [col] != '#' && grid [row] [col] != '.')
                return Integer.valueOf (grid [row] [col] + "").intValue (); // To int
            else
                return 0;
        }

        if (row - 1 < 0 || col + 1 >= 8)
            return 0;

        int num;
        if (grid [row] [col] != '#' && grid [row] [col] != '.')
            num = Integer.valueOf (grid [row] [col] + "").intValue (); // To int
        else
            num = 0;

        if (grid [row - 1] [col] == '#' && grid [row] [col + 1] == '#')
            return num;
        else if (grid [row - 1] [col] == '#')
            return num + recurse (grid, row, col + 1);
        else if (grid [row] [col + 1] == '#')
            return num + recurse (grid, row - 1, col);
        else
        {
            int a, b;
            a = num + recurse (grid, row - 1, col);
            b = num + recurse (grid, row, col + 1);
            if (a > b)
                return a;
            else
                return b;
        }

    }
}


(How do I make it highlight syntax?)
Sponsor
Sponsor
Sponsor
sponsor
A.J




PostPosted: Thu Nov 25, 2010 12:44 am   Post subject: Re: Dwite round 2 problem 3

Well, since you didn't ask any question as such, I can only assume you are wondering why the answer is 41. The following path yields 41 (one of two paths, I believe):

......6#
.6.....#
...#4.##
7.....#2
..9...#.
.....##.
.#####..
##.5.9..

4 + 8 + 6 + 5 + 3 + 7 + 5 + 3 = 41
MagicIdiot




PostPosted: Thu Nov 25, 2010 7:43 am   Post subject: Re: Dwite round 2 problem 3

Whoops, I was in a rush and forgot to ask, what am I missing or doing wrong in my code?
A.J




PostPosted: Thu Nov 25, 2010 4:18 pm   Post subject: RE:Dwite round 2 problem 3

When it comes to debugging code, the person who coded up the program has a the best chance of catching the mistake, as only they know everything that is going on in their code. Having said that, the error would have occurred anywhere. Try debugging it yourself (since you already know what testcase it is failing, try looking at all the intermediate steps). I can`t run it for you at home and figure out what it is doing as I don`t have a Java compiler, nor do I have the time (sorry).
Display posts from previous:   
   Index -> CompSci.ca, Contests -> DWITE
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 4 Posts ]
Jump to:   


Style:  
Search: