Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
ffprog:ffprogjava2016:soiaufgben [2016/09/30 10:21] Ivo Blöchliger [CableCar] |
ffprog:ffprogjava2016:soiaufgben [2016/10/11 12:33] Ivo Blöchliger [Tunnel] |
||
---|---|---|---|
Line 91: | Line 91: | ||
* $O(n)$ Lösung: http:// | * $O(n)$ Lösung: http:// | ||
+ | |||
+ | === Aufgabe 1 === | ||
+ | * {{ : | ||
+ | |||
+ | === Aufgabe 2 === | ||
+ | |||
+ | * {{ : | ||
+ | |||
+ | === Aufgabe 3 === | ||
+ | Anstatt einer Instanz-Datei (ca. 1GB) gibt es hier einen Java-Code, der eine Instanz-Datei generiert: | ||
+ | <code java> | ||
+ | public static void generate(String fileName, int cases, int maxN, int maxH, int seed) throws IOException { | ||
+ | ArrayList< | ||
+ | lines.add(String.format(" | ||
+ | Random r = new Random(seed); | ||
+ | for (int c=0; c<cases; c++) { | ||
+ | int n = r.nextInt(maxN-4)+5; | ||
+ | lines.add(String.format(" | ||
+ | List< | ||
+ | Collections.sort(bounds); | ||
+ | int minH = r.nextInt(maxH/ | ||
+ | System.out.println(" | ||
+ | int heights[][] = new int[2][n]; | ||
+ | for (int i=0; i<n; i++) { | ||
+ | int x = (i> | ||
+ | heights[1][i] = r.nextInt(x); | ||
+ | heights[0][i] = r.nextInt(maxH-x)+x+1; | ||
+ | } | ||
+ | StringBuilder sb = new StringBuilder(); | ||
+ | for (int j=0; j<2; j++) { | ||
+ | for (int i=0; i<n; i++) { | ||
+ | sb.append(heights[j][i]); | ||
+ | if (i<n-1) { | ||
+ | sb.append(" | ||
+ | } | ||
+ | } | ||
+ | lines.add(sb.toString()); | ||
+ | sb = new StringBuilder(); | ||
+ | } | ||
+ | } | ||
+ | Files.write(Paths.get(fileName), | ||
+ | System.out.println(" | ||
+ | } | ||
+ | </ | ||
+ | Aufruf mit | ||
+ | <code java> | ||
+ | generate(" | ||
+ | </ | ||
+ | Für diese Parameter sieht die Lösung wie folgt aus: | ||
+ | <code txt> | ||
+ | |||
+ | </ |