# How do I adapt this program to comply with the online judge?

•
•  |
•

### Question

I'm solving UVA's Edit Step Ladders on an uva sub-site named programming-challenges.com, but since I didn't get at all the format in which I'm supposed to test-input I simply took their sample input, put it into a text file and tested my code from there. Like this:

``````import java.io.*;
import java.util.*;

class Levenshtein {
private static int minimum(int a, int b, int c) {
if(a<=b && a<=c)
return a;
if(b<=a && b<=c)
return b;
return c;
}

public static int computeLevenshteinDistance(String str1, String str2) {
return computeLevenshteinDistance(str1.toCharArray(),
str2.toCharArray());
}

private static int computeLevenshteinDistance(char [] str1, char [] str2) {
int [][]distance = new int[str1.length+1][str2.length+1];

for(int i=0;i<=str1.length;i++)
distance[i][0]=i;

for(int j=0;j<=str2.length;j++)
distance[0][j]=j;

for(int i=1;i<=str1.length;i++)
for(int j=1;j<=str2.length;j++)
distance[i][j]= minimum(distance[i-1][j]+1,
distance[i][j-1]+1,
distance[i-1][j-1]+
((str1[i-1]==str2[j-1])?0:1));

return distance[str1.length][str2.length];
}

public static void main(String args[]){

ArrayList<String> theWords = new ArrayList<String>();

try {

File myFile = new File (ruta);

String line = null;

System.out.println(line);
}

}

catch (IOException ex){
ex.printStackTrace();

}
{}
// todo esto sólo para iniciar el arreglo
// ahora vienen las llamadas a Levenstein y las comparaciones

int maxEdit=0;
int actualEdit=0;

int wordsIndex1 =0, wordsIndex2=0;

while (wordsIndex1<= theWords.size())
{
while (wordsIndex2<= theWords.size()-1){
actualEdit=computeLevenshteinDistance(theWords.get(wordsIndex1),theWords.get(wordsIndex2));
if (actualEdit>maxEdit){maxEdit=actualEdit;}
wordsIndex2++;
}
wordsIndex1++;

}

System.out.println(maxEdit+1);
}

}
``````

my input file being:

``````cat
dig
dog
fig
fin
fine
fog
log
wine
``````

I'm supposed to make the code comply to the following pattern, thing is..I don't get where this thing is capturing its String:

``````import java.io.*;
import java.util.*;

class Modelo implements Runnable{
// Provided by Programming-challenges, edit for style only
byte line[] = new byte [maxLength];
int length = 0;
int input = -1;
try{
while (length < maxLength){//Read untill maxlength
if ((input < 0) || (input == '\n')) break; //or untill end of line ninput
line [length++] += input;
}

if ((input < 0) && (length == 0)) return null;  // eof
return new String(line, 0, length);
}catch (IOException e){
return null;
}
}

public static void main(String args[]) // entry point from OS
{
Modelo myWork = new Modelo();  // Construct the bootloader
myWork.run();            // execute
}

public void run() {
new myStuff().run();
}
}
class myStuff implements Runnable{
public void run(){
try
{

/// PLACE YOUR JAVA CODE HERE

}catch(Exception e){
System.out.println("A Exception was generated");
}
}

// You can insert more classes here if you want.
}
``````

Why should I place it where it says //place your code here and not here??

`````` try{
while (length < maxLength){//Read untill maxlength
if ((input < 0) || (input == '\n')) break; //or untill end of line input
line [length++] += input;

}
``````

How do I manipulate the input??

I think the idea here is to write your program in the `myStuff` class, where it will be called in the `run()` method. From the `run()` method, you can use `Modelo.ReadLn()` to get your input.