#include #include #include #include #include #define endl '\n' using namespace std; int br[17000006],i,j,p,q,n,m,k,g,b,r,ans[506][506],nom,h,min1=99999999,l,rr,gg,bb,L,R; bool f,fl[17000006],fl1[250006]; clock_t t,t1; struct Cvqt { int r,g,b; } tabl[506][506]; struct BrCvqt { int r,g,b,br; } a[250006], c[21]; bool fff(BrCvqt a,BrCvqt b) { return (a.br>n>>m; //cin>>n>>m; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { fin>>tabl[i][j].r>>tabl[i][j].g>>tabl[i][j].b; //cin>>tabl[i][j].r>>tabl[i][j].g>>tabl[i][j].b; p = tabl[i][j].r*256*256 + tabl[i][j].g*256 + tabl[i][j].b; p++; br[p]++; } } } void find_all_colours() { q=0; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { p = tabl[i][j].r*256*256 + tabl[i][j].g*256 + tabl[i][j].b; p++; if(!fl[p]) { fl[p]=1; q++; a[q].r=tabl[i][j].r; a[q].g = tabl[i][j].g; a[q].b = tabl[i][j].b; a[q].br = br[p]; } } } if(q<16) { for(i=0; i<=255; i++) { for(j=0; j<=255; j++) { for(k=0; k<=255; k++) { p = i*256*256 + j*256 + k + 1; if(!fl[p]) { fl[p]=1; q++; a[q].r=i; a[q].g = j; a[q].b = k; a[q].br = 0; if(q==16) break; } } if(q==16) break; } if(q==16) break; } } } void palitra() { k=0; //cout<=2400)break; } for(int bor=dul; bor>=16; bor--) { tek = 0; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { q=99999999; for(k=bor-15; k<=bor; k++) { p = (tabl[i][j].r-a[k].r)*(tabl[i][j].r-a[k].r) + (tabl[i][j].g-a[k].g)*(tabl[i][j].g-a[k].g) + (tabl[i][j].b-a[k].b)*(tabl[i][j].b-a[k].b); q=min(q,p); } tek+=q; } } if(tek=4700)break; } } void print0() { for(i=1; i<=16; i++) { fout<>a[i].r>>a[i].g>>a[i].b; fin>>a[i].r>>a[i].g>>a[i].b; } //cin>>n>>m; fin>>n>>m; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { //cin>>p; fin>>p; p++; //cout<>f; fin>>f; if(f==0) { read(); find_all_colours(); sort(a+1,a+q+1,fff); /**for(i=1;i<=q;i++) { cout<