Friday, May 11, 2012

Words formed by selecting one letter from each set (set combinations)






//Input 1,2   3,4,5  6  -1  each set is entered line-by-line
//-1 is the end of input
//output will be 136,146,156,236,246,256





import java.io.*;
import java.util.*;
import java.lang.String;
import java.util.StringTokenizer;
public class Possibilities {
    public static void main(String[] args) throws IOException {
        String s;
        ArrayList<String> a1 = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        s = br.readLine();
        if (!s.equals("-1"))
            a1 = generatePossibilities(s);
        System.out.println(a1);
    }

    public static ArrayList<String> generatePossibilities(String s)
            throws IOException
    {
        ArrayList<String> a1 = new ArrayList<String>();
        ArrayList<String> a2 = new ArrayList<String>();
        ArrayList<String> a3 = new ArrayList<String>();
        BufferedReader br1 = new BufferedReader(
                new InputStreamReader(System.in));
        String s2 = br1.readLine();
        if (!s2.equals("-1"))
        {
            a2 = generatePossibilities(s2);
            a3 = generateList(s);
            for (int l = 0; l < a3.size(); l++)
                for (int k = 0; k < a2.size(); k++)
                    a1.add(a3.get(l) + a2.get(k));
        }
        else
            a1 = generateList(s);

        return a1;
    }

    public static ArrayList<String> generateList(String s) throws IOException
    {
        ArrayList<String> a1 = new ArrayList<String>();
        StringTokenizer st = new StringTokenizer(s, ",");
        while (st.hasMoreTokens())
            a1.add(st.nextToken());

        return a1;
    }
}