# include # include # include # include #include #include using namespace std; const int distance1=15; const int numberofoperations=15; const double pet=50; int n,k; int p[15][4]; int r[301][301]; int g[301][301]; int b[301][301]; long long s[301][301]; bool visit[301][301]; int f[256]; struct square { int x; int y; int ar; int ag; int ab; int ds; }; square q[90005]; struct square2 { int x; int y; int av; }; square2 h[90005]; int brq=0; bool cmp(square2 i, square2 j) { return i.av0;p--) { fl=1; sr=0; sg=0; sb=0; minr=100000; ming=100000; minb=100000; maxr=0; maxg=0; maxb=0; for(t1=i;fl&&t1<=i+p-1;t1++) { for(t2=j;t2<=j+p-1;t2++) { // cout<distance1){fl=0;break;} if(max(maxg,g[t1][t2])-min(ming,g[t1][t2])>distance1){fl=0;break;} if(max(maxb,b[t1][t2])-min(minb,b[t1][t2])>distance1){fl=0;break;} maxr=max(maxr,r[t1][t2]); minr=max(minr,r[t1][t2]); maxg=max(maxg,g[t1][t2]); ming=max(ming,g[t1][t2]); maxb=max(maxb,b[t1][t2]); minb=max(minb,b[t1][t2]); sr+=r[t1][t2]; sg+=g[t1][t2]; sb+=b[t1][t2]; } maxr=max(maxr,r[t1][t2]); minr=max(minr,r[t1][t2]); } if(fl)break; } for(t1=i;t1<=i+p-1;t1++) for(t2=j;t2<=j+p-1;t2++) visit[t1][t2]=1; brq++; q[brq].x=i+p-1; q[brq].y=j+p-1; q[brq].ar=sr/(p*p); q[brq].ag=sg/(p*p); q[brq].ab=sb/(p*p); q[brq].ds=p; // cout<