Go to diff to previous submission
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Chyba { public int line; public int toLine; } public class Bugs { static List<Chyba> chyby = new LinkedList<Chyba>(); public static List<String> getErrors(int radka) { List<String> ret = new LinkedList<String>(); for(Chyba a : chyby) { if (a.line <= radka && radka <= a.toLine) { ret.add(a.ret); } } return ret; } int radek = 1; while(is.ready()) { //System.out.println(line); // Test na bug case? int pozicePrvniMezery = line.indexOf(" "); if (pozicePrvniMezery > 0) { // Pridat bug test int poziceDruheMezery = line.indexOf(" ", pozicePrvniMezery+1); //System.out.print("Pozice 1. "+pozicePrvniMezery+", druhe: "+poziceDruheMezery); if (poziceDruheMezery < 0) { try { //System.out.println("Cislo:"+line.substring(0, pozicePrvniMezery)); //System.out.println("Ret:"+ret); Chyba a = new Chyba(); a.ret = ret; a.line = radek+1; a.toLine = radek+pocet; chyby.add(a); radek++; continue; } } } // Replace na data List<String> chyby = getErrors(radek); int i = 0; int puvodni = line.length(); int novaDelka = 0; boolean nalezeno = false; //System.out.println(chyby.toString()); do { nalezeno = false; line = line.replaceAll("("+er+")*", ""); novaDelka = line.length(); if (novaDelka != puvodni) { nalezeno = true; puvodni = novaDelka; } } } while(nalezeno); radek++; } } }
--- c4.s1105.cteam111.bugs.java.0.Bugs.java +++ c4.s1195.cteam111.bugs.java.0.Bugs.java @@ -1,3 +1,6 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.*; @@ -23,35 +26,38 @@ - public static void main(String [] args) { - Scanner sc = new Scanner(System.in); - + public static void main(String [] args) throws IOException { + + BufferedReader is = new BufferedReader(new InputStreamReader(System.in)); + int radek = 1; - - /*String test = "Franta ERBUBERRUGGR"; - System.out.println(test); - System.out.println(test.replaceAll("(BUG)*(ERR)*", ""));*/ - while(sc.hasNextLine()) { - String line = sc.nextLine(); + while(is.ready()) { + + String line = is.readLine(); + //System.out.println(line); // Test na bug case? - String [] array = line.split(" "); - if (array.length == 2) { + int pozicePrvniMezery = line.indexOf(" "); + + if (pozicePrvniMezery > 0) { // Pridat bug test - Chyba a = new Chyba(); - a.ret = array[1]; - int nasleduje = 0; - boolean jeToBug = true; - try { - nasleduje = Integer.parseInt(array[0]); - } catch(Exception e) { - jeToBug = false; - } - if (jeToBug) { - a.line = radek+1; - a.toLine = radek+nasleduje; - chyby.add(a); - radek++; - continue; + int poziceDruheMezery = line.indexOf(" ", pozicePrvniMezery+1); + //System.out.print("Pozice 1. "+pozicePrvniMezery+", druhe: "+poziceDruheMezery); + if (poziceDruheMezery < 0) { + try { + //System.out.println("Cislo:"+line.substring(0, pozicePrvniMezery)); + int pocet = Integer.parseInt(line.substring(0, pozicePrvniMezery)); + String ret = line.substring(pozicePrvniMezery+1, line.length()); + //System.out.println("Ret:"+ret); + Chyba a = new Chyba(); + a.ret = ret; + a.line = radek+1; + a.toLine = radek+pocet; + chyby.add(a); + radek++; + continue; + } catch (Exception e) { + + } } } @@ -63,10 +69,9 @@ int novaDelka = 0; boolean nalezeno = false; + //System.out.println(chyby.toString()); do { nalezeno = false; for(String er : chyby) { - //System.out.println("Pred: "+line); line = line.replaceAll("("+er+")*", ""); - //System.out.println("Po: "+line); novaDelka = line.length(); if (novaDelka != puvodni) { @@ -81,5 +86,4 @@ radek++; } - } }