AOJ - Problem 0025 : Hit and Blow

有名なゲームのヒットアンドブローですね。学校が終わった後少し時間があったとき
自分で遊ぶ用のヒットアンドブローを暇つぶしにコーディングしたりしてたので、
わりとすぐに解けました。
位置も数字も一致している数はblowに含まれないので気をつけましょう。

#include <iostream>
#include <string>
using namespace std;

int main(){
	int a[4], b[4], hit, blow, n1[10], n2[10];

	while(cin >> a[0] >> a[1] >> a[2] >> a[3] >> b[0] >> b[1] >> b[2] >> b[3]){
		hit = 0;
		blow = 0;
		for(int i=0 ; i<10 ; i++){
			n1[i] = 0;
			n2[i] = 0;
		}

		for(int i=0 ; i<4 ; i++){
			if(a[i]==b[i]) hit++;
			n1[ a[i] ] = 1;
			n2[ b[i] ] = 1;
		}
		for(int i=0 ; i<10 ; i++){
			if( n1[i]==n2[i] && n1[i]==1) blow++;
		}
		cout << hit << " " << blow-hit << endl;
	}
}