package com.menzus.gcj._2012.qualification.c;

import com.menzus.gcj.common.InputBlockParser;
import com.menzus.gcj.common.OutputProducer;
import com.menzus.gcj.common.impl.AbstractProcessorFactory;

public class CProcessorFactory extends AbstractProcessorFactory<CInput, COutputEntry> {
    public CProcessorFactory(String inputFileName) {
	super(inputFileName);
    }

    @Override
    protected InputBlockParser<CInput> createInputBlockParser() {
	return new CInputBlockParser();
    }

    @Override
    protected OutputProducer<CInput, COutputEntry> createOutputProducer() {
	return new COutputProducer();
    }
}

package com.google.jam.eaque.stub;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import com.google.jam.eaque.qualif.c.StubImpl;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		if (args.length != 2) {
			System.out.println("args length : " + args.length);
			System.exit(0);
		}

		Stub body = new StubImpl();
		body.setOutputFileName(args[1]);

		try {
			InputFileManager ifm = new InputFileManager(args[0]);
			BufferedWriter bw = new BufferedWriter(new FileWriter(
					body.getOutputFileName()));

			long nbTestCases = ifm.readLong();

			for (long i = 0; i < nbTestCases; i++) {
				bw.write("Case #" + (i + 1) + ":" + body.runTestCase(ifm));
				bw.newLine();
			}

			ifm.close();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
