Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <algorithm>
- using namespace std;
- ifstream fin("matrix_replace.in");
- ofstream fout("matrix_replace.out");
- short a[105][155][155];
- bool ap[155];
- int n,k,max_lat,k_folosit;
- int main()
- {
- fin>>n>>k;
- for(int i=1;i<=n;++i)
- for(int j=1;j<=n;++j)
- {
- int x;fin>>x;
- ap[x]=1;
- a[x][i][j]=1;
- }
- for(int nr=0;nr<=100;++nr)
- {
- if(ap[nr])
- {
- for(int i=1;i<=n;++i) /// sume partiale
- for(int j=1;j<=n;++j)
- a[nr][i][j]=a[nr][i][j]+a[nr][i-1][j]+a[nr][i][j-1]-a[nr][i-1][j-1];
- for(int i=1;i<=n;++i)
- for(int j=1;j<=n;++j)
- {
- int limita=n-max(i,j)+1;
- for(int latura=1;latura<=limita;++latura)
- {
- int patrat=latura*latura;
- int suma=a[nr][i+latura-1][j+latura-1]-a[nr][i-1][j+latura-1]-a[nr][i+latura-1][j-1]+a[nr][i-1][j -1];
- if(patrat-suma<=k)
- {
- if(latura>max_lat||(latura==max_lat&&patrat-suma< k_folosit))
- k_folosit=patrat-suma,max_lat=latura;
- }
- else
- latura=200;
- }
- }
- }
- }
- fout<<max_lat<<' '<<k_folosit;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement