AOJ0065 Trading

問題リンク Trading

  • 解法

取引先数が1000社以内なので、大きさ1001の配列t, t2を用意して(問題文に会社番号のとる値についての記載がありませんが番号は1000以下のようです)、それぞれ、会社iと取引した回数(今月分と先月分)をカウントします。
出力は会社番号の若い順なので、会社番号の小さい順にループを回して、t[i]とt2[i]が共に0でない会社について出力すればいいです。

  • ソース
import java.util.Scanner;

//Trading
public class AOJ0065 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] t = new int[1001];
		int[] t2 = new int[1001];
		while(true){
			String s = sc.nextLine();
			if(s.equals(""))break;
			t[Integer.parseInt(s.split(",")[0])]++;
		}
		while(sc.hasNext()){
			int x = Integer.parseInt(sc.nextLine().split(",")[0]);
			t2[x]++;
		}
		for(int i=0;i<=1000;i++)if(t[i]>0&&t2[i]>0)System.out.println(i+" "+(t[i]+t2[i]));
	}
}