I a new to code chef and i tried solving one of the problem in the October challenge(my first attempt on codechef) but i got NZEC error. I tried my best to get rid of it but couldn’t solve. I will be very grateful if anyone could point out my mistake.
Here is my code.
class Main {
static data d[];
static java.io.File f1, f2;
static java.io.BufferedReader br = null;
static java.io.BufferedWriter bw = null;
static String s = “”, s1 = “”;
static String temp[];
public static void main(String args[]) throws Exception
{
boolean flag = false;
int number = 0;
f1 = new java.io.File(args[0]);
f2 = new java.io.File(args[1]);
bw = new java.io.BufferedWriter(new java.io.FileWriter(f2));
br = new java.io.BufferedReader(new java.io.FileReader(f1));
s = br.readLine();
flag = isNumber(s);
if (flag)
number = Integer.parseInt(s);
else
System.exit(0);
d = new data[number];
for (int i = 0; i < number; i++) {
d[i] = new data();
temp = br.readLine().trim().split(" ");
flag = isNumber(temp[0]);
if (flag)
d[i].gar = new int[Integer.parseInt(temp[0])];
else
System.exit(0);
flag = isNumber(temp[1]);
if (flag)
d[i].n = Integer.parseInt(temp[1]);
else
System.exit(0);
temp = br.readLine().trim().split(" ");
for (int k = 0; k < temp.length; k++) {
flag = isNumber(temp[k]);
if (flag)
d[i].gar[k] = Integer.parseInt(temp[k]);
else
System.exit(0);
}
}
for (int i = 0; i < number; i++)
try {
s1 = s1 + Output(i);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bw.write(s1);
bw.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static boolean isNumber(String string) {
try {
Integer.parseInt(string);
return true;
} catch (Exception e) {
return false;
}
}
private static String Output(int i) throws java.lang.Exception {
int sum = 0;
boolean flag = true;
java.util.Arrays.sort(d[i].gar);
int n = d[i].n;
if ((d[i].gar[d[i].gar.length - 1] - d[i].gar[0]) > n)
s = "No\n";
else {
int m = d[i].gar[d[i].gar.length - 1];
outer: for (int j = 0; j < d[i].gar.length - 1; j++) {
sum += m - d[i].gar[j];
if (sum > n) {
flag = false;
break outer;
}
}
if (!flag)
s = "No\n";
else {
if (sum < n)
s = "No\n";
else
s = "Yes\n";
}
}
return s;
}
}
class data {
int gar[];
int n;
}