#include #include #include #include #include #include #include using namespace std; int table[200][200]/** âúâåäåíàòà òàáëèöà*/,brnapoleta[51]/** áðîé íà ïîëåòàòà îò ñúîòâåíèòå ÷èñëà â òàáëèöàòà*/; int sb/** ñáîðà çà ñúîòâåòíàòà êëåòêà*/,tablesums[200][200]/** ñóìè çà ñúîòâåòíàòà êëåòêà*/,max1/**ìàêñèìàëåí áðîé ÷èñëà*/; int sortedtables[40000]/**ñîðòèðàíèòå ñóìè*/,used[200][200]/**èçïîëçâàíè ïîëåòà*/,brc=1/**áðîé ñåãàøíè öàðèöè*/; int know/**ñåãàøíî K*/,lastresult,queensmoving,b,i1,j2; bool tablenow[200][200]; int n,r,k; int cmp(int x,int y) { return x > y; } int find_war() { for(int i=0; i=max(i-r,0) && j2>=max(j-r,0); i1--,j2--) { if(used[i1][j2])know++; } ///ãîðåí äåñåí for(i1=i-1,j2=j+1; i1>=max(i-r,0) && j2<=min(j+r,n-1); i1--,j2++) { if(used[i1][j2])know++; } ///äîëåí äåñåí for(i1=i+1,j2=j+1; i1<=min(i+r,n-1) && j2<=min(j+r,n-1); i1++,j2++) { if(used[i1][j2])know++; } ///äîëåí ëÿâ for(i1=i+1,j2=j-1; i1<=min(i+r,n-1) && j2>=max(j-r,0); i1++,j2--) { if(used[i1][j2])know++; } } } } int main() { cin>>n>>r>>k; for(int i=0; i>table[i][j]; ///îïðåäåëÿíå íà òî÷êèòå çà âñÿêà êëåòêà for(int i=0; i=max(i-r,0) && j2>=max(j-r,0); i1--,j2--) { brnapoleta[table[i1][j2]]++; sb+=table[i1][j2]; //table[i1][j2]=0; // cout<<"ok"; } ///ãîðåí äåñåí for(i1=i-1,j2=j+1; i1>=max(i-r,0) && j2<=min(j+r,n-1); i1--,j2++) { brnapoleta[table[i1][j2]]++; sb+=table[i1][j2]; //table[i1][j2]=0; } ///äîëåí äåñåí for(i1=i+1,j2=j+1; i1<=min(i+r,n-1) && j2<=min(j+r,n-1); i1++,j2++) { brnapoleta[table[i1][j2]]++; sb+=table[i1][j2]; //table[i1][j2]=0; } ///äîëåí ëÿâ for(i1=i+1,j2=j-1; i1<=min(i+r,n-1) && j2>=max(j-r,0); i1++,j2--) { brnapoleta[table[i1][j2]]++; sb+=table[i1][j2]; //table[i1][j2]=0; } for(int a=1; a<=50; a++) { if(brnapoleta[a]>max1) max1=brnapoleta[a]; brnapoleta[a]=0; } tablesums[i][j]=max1*sb; // cout<k) { sb=0; know=0; for(int i=0; i=n*n?brc:brc+b); a++) for(int i=0; i=n*n) { b=0; queensmoving++; if(queensmoving==brc) break; } } brc++; if(sbk) { sb=0; know=0; for(int i=0; i=n*n?brc:brc+b); a++) for(int i=0; i=n*n) { b=0; queensmoving++; if(queensmoving==brc) break; } } // cout<