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.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class InputFileManager {

	private BufferedReader br;

	public InputFileManager(String filePath) throws NumberFormatException,
			IOException {
		br = new BufferedReader(new FileReader(filePath));
	}

	public void close() throws IOException {
		br.close();
	}

	public String readLine() throws IOException {
		return br.readLine();
	}

	public long readLong() throws NumberFormatException, IOException {
		return Long.parseLong(br.readLine());
	}

	public String[] readAndSplit() throws IOException {
		return br.readLine().split(" ");
	}
}
