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.codejam.two12.RecyledNumbers;

public class Pair {
  private int a, b;
  
  public Pair(int a, int b){
    this.a = a;
    this.b = b;
  }

  /** {@inheritDoc}*/
  @Override
  public String toString() {
    return "(" + a + ", " + b + ")";
  }

  /** {@inheritDoc}*/
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + a;
    result = prime * result + b;
    return result;
  }

  /** {@inheritDoc}*/
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;
    if (getClass() != obj.getClass()) return false;
    Pair other = (Pair) obj;
    if (a != other.a) return false;
    if (b != other.b) return false;
    return true;
  }
  
  
  
}
