Warning: session_start(): open(/var/lib/php/sessions/sess_gndaqjg0i1pf5o48tes74mkmd2, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!636
!629 // standard functions
main {
psvm {
String src = takeInput(args, "#2000397");
List cnc = parseCNC(src);
for (int i = 1; i+2 < cnc.size(); i += 2) {
if (cnc.get(i).equals("class")
&& cnc.get(i+2).equals("main")) {
int j = i;
while (j < cnc.size() && !cnc.get(j).equals("{"))
j += 2;
int k = findEndOfBlock(cnc, j);
printExcerpt(cnc, i, k);
break;
}
}
}
static int findEndOfBlock(List cnc, int i) {
int j = i+2, level = 1;
while (j < cnc.size()) {
if (cnc.get(j).equals("{")) ++level;
else if (cnc.get(j).equals("}")) --level;
if (level == 0)
return j+1;
++j;
}
return cnc.size();
}
static void printExcerpt(List cnc, int i, int j) {
StringBuilder out = new StringBuilder();
for (; i < j; i++)
out.append(cnc.get(i));
System.out.println(out.toString());
}
public static String unquote(String s) {
if (s.startsWith("\"") && s.endsWith("\"") && s.length() > 1)
return s.substring(1, s.length()-1).replace("\\\"", "\"").replace("\\n", "\n").replace("\\r", "\r").replace("\\\\", "\\"); // SHOULD work...
return s;
}
static String takeInput(String[] args, String defSnippet) tex {
if (args.length != 0)
return loadSnippet(args[0]);
String s = loadTextFile("input/input.txt", null);
if (s != null) return s;
return loadSnippet(defSnippet);
}
static List parseCNC(String src) {
List list = new ArrayList();
for (String s : toLines(src))
list.add(unquote(s));
return list;
}
}