#include #include #include #include #include #include #include #define maxn 8000100 #define inf (1<<30) #define mod 666013 using namespace std; ifstream fin("A.in"); ofstream fout("A.out"); int cnt[10]; int a[16][16],viz[16][16],viz2[16][16]; vector seli,selj; int dir1[4] = {0,0,-1,1}; int dir2[4] = {-1,1,0,0}; void fill (int i, int j) { viz[i][j] = 1; seli.push_back(i); selj.push_back(j); for (int k = 0; k < 4; ++k) { int ii = i + dir1[k]; int jj = j + dir2[k]; if (!viz[ii][jj] && a[ii][jj] == a[1][1]) { fill(ii,jj); } else if (!viz[ii][jj] && !viz2[ii][jj]) { viz2[ii][jj] = 1; cnt[a[ii][jj]]++; } } } int main () { for (int i = 1; i <= 14; ++i) { for (int j=1; j <= 14; ++j) { cin >> a[i][j]; } } for (int k = 1; k <= 25; ++k) { memset(cnt,0,sizeof(cnt)); memset(viz,0,sizeof(viz)); memset(viz2,0,sizeof(viz2)); seli.clear(); selj.clear(); for (int i = 1; i <= 14; ++i) { viz[i][15] = 1; viz[i][0] = 1; viz[0][i] = 1; viz[15][i] = 1; } fill(1,1); int maxi = 0; for (int i = 0; i < 6; ++i) { if (cnt[i] > cnt[maxi]) maxi = i; } for (int i=0; i < seli.size(); ++i) { a[seli[i]][selj[i]] = maxi; } } /*for (int i = 1; i <= 14; ++i) { for (int j = 1; j <= 14; ++j) cout << a[i][j] << " "; cout << "\n"; }*/ }