Hello,
I'm having real trouble submitting the answer for this problem. I have followed all the Java guidelines, including having the Main class and whatnot, and I'm still getting compile errors. Can anyone versed in submitting problems to the Archive in java please help me? This here is my solution (revision #10 or something):
<code>
// @JUDGE_ID: 5526OE 3493 Java
import java.io.*;
import java.util.*;
class Main implements Runnable {
static String readLine(int maxLg) {
byte[] lin = new byte[maxLg];
int lg = 0, car = -1;
String line = "";
try {
while (lg < maxLg) {
car = System.in.read();
if ((car < 0) || (car == '\n'))
break;
lin[lg++] += car;
}
} catch (Exception e) {
return null;
}
if ((car < 0) && (lg == 0))
return null; // eof
return new String(lin, 0, lg);
}
public static void main(String[] args) {
Main myWork = new Main();
myWork.run();
}
public void run() {
new Binary().run();
}
}
class Binary {
public void run() {
StringTokenizer tk = new StringTokenizer(Main.readLine(255));
int numSets = Integer.parseInt(tk.nextToken());
Set[] sets = new Set[numSets];
for (int i=0; i<numSets; i++) {
tk = new StringTokenizer(Main.readLine(255));
String one = tk.nextToken();
String two = tk.nextToken();
sets[i] = new Set(one, two, (i+1));
}
for (int i=0; i<numSets; i++)
sets[i].print();
}
class Set {
String result;
int order;
Set(String one, String two, int num) {
order = num;
result = "";
int len = one.length();
if (len > two.length()) {
while (one.length() > two.length())
two = "0" + two;
} else if (len < two.length()) {
while (one.length() < two.length())
one = "0" + one;
len = two.length();
}
char[] top = one.toCharArray();
char[] bot = two.toCharArray();
int carryover = 0;
for (int i=len-1; i>=0; i--) {
int sum = Integer.parseInt(
Character.toString(top[i])) +
Integer.parseInt(
Character.toString(bot[i])) +
carryover;
if (sum==0) {
result = "0" + result;
carryover = 0;
} else if (sum==1) {
result = "1" + result;
carryover = 0;
} else if (sum==2) {
result = "0" + result;
carryover = 1;
} else if (sum==3) {
result = "1" + result;
carryover = 1;
}
if (i==0 && carryover == 1)
result = "1" + result;
}
}
void print() {
System.out.println(order + " " + result);
}
}
}
</code>
I appreciate any help, thank you.
Carlos
