import java.util.StringTokenizer;
import java.util.Vector;

import sun.security.jgss.TokenTracker;

public class Blocksatz {

	private static Vector words;

    /**
     * Setze den Text in <code>s</code> in der Breite <code>breite</code> mit dem dynamischen Programmier-Algorithmus
     * vom 8. EAA-Zettel.
     *
     * @param s ein String mit dem zu setzenden Text
     * @param breite die gewnschte Breite (jedes Element im Rckgabearray hat maximal Lnge <code>breite</code>
     * @return ein Array mit dem einzelnen Zeilen als String. Nur die letzte Zeile darf krzer als <code>breite</code>
     * sein. Jede andere enthlt einen String der Lnge <code>breite</code>
     */
    public static String[] setzen(String s, int breite) {

        StringTokenizer t = new StringTokenizer(s);
        words = new Vector();
        while (t.hasMoreTokens()) {
        	words.add(t.nextToken());
        }
        final int n = words.size();
        int[] length = new int[n];
        for(int i = 0; i<n; i++) {
        	length[i] = ((String)words.elementAt(i)).length();
        }

		int[] optimum = calc(length);

        return null; // das soll weg!
    }
    
    private static int[] calc(int[] length) {
    	return null;
    }

    /**
     * Ein kleiner Test, der auch zeigt, wie die Methoden funktionieren soll.
     * Der Blocksatz-Algorithmus wird mit einem Text gefttert. Die Ausgabe
     * des Greedy-Algorithmus ist in diesem Fall anders als die des gesuchten
     * Algorithmus.
     *
     * @param args ignoriert
     */
    public static void main(String[] args) {
        String[] test = setzen("Dieses ist ein toller Testtext", 14);
        // Die Greedy-Strategie erzeugt hier:
        //Dieses ist ein
        //toller
        //Testtext
        // Der Algorithmus soll aber
        //Dieses     ist
        //ein     toller
        //Testtext
        // erzeugen
        for (int i = 0; i < test.length; i++) {
            String s = test[i];
            System.out.println(s);
        }
        if (test.length != 3) {
            System.err.println("Zu wenige Zeilen");
            return;
        }
        if (!test[0].equals("Dieses     ist"))
            System.err.println("Erste Zeile falsch");
        if (!test[1].equals("ein     toller"))
            System.err.println("Zweite Zeile falsch");
        if (!test[2].equals("Testtext"))
            System.err.println("Dritte Zeile falsch");
    }
}
