[21년 재직자 대회 예선] 전광판
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int mapA[5][7];
int mapB[5][7];
int def[11][7] = {
{ 0, 1, 1, 1, 1, 1, 1 },
{ 0,0,0,1,1,0,0 },
{ 1,0,1,1,0,1,1 },
{ 1,0,1,1,1,1,0 },
{ 1,1,0,1,1,0,0 },
{ 1,1,1,0,1,1,0 },
{ 1,1,1,0,1,1,1 },
{ 0,1,1,1,1,0,0},
{ 1,1,1,1,1,1,1 },
{ 1,1,1,1,1,1,0 },
{ 0,0,0,0,0,0,0 }
};
void func(int a, int map[5][7]) {
int div = a;
int mod;
for (int i = 0; i < 5; i++) {
mod = div % 10;
div = div / 10;
memcpy(&map[i][0], &def[mod][0], sizeof(def[0]));
if (div == 0) {
for (int j = i + 1; j < 5; j++) {
memcpy(&map[j][0], &def[10][0], sizeof(def[0]));
}
break;
}
}
}
int main(int argc, char** argv)
{
int t, a, b;
cin >> t;
for (int i = 0; i < t; i++) {
cin >> a >> b;
func(a, mapA);
func(b, mapB);
int num=0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 7; j++) {
if(mapA[i][j]^mapB[i][j])
num++;
}
}
cout <<num<<"\n";
}
return 0;
}