Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main(){
- ios::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- int n,m,val;
- int sumCM[1001][1001];
- cin>>m>>n;
- char aux;
- for(int i = 0; i < m; i++){
- for(int j = 0; j < n; j++){
- cin>>aux;
- if(aux == 'M'){
- sumCM[i][j] = 0;
- }else if(aux == 'C'){
- sumCM[i][j] = 1;
- }
- }
- }
- cin>>val;
- int maxi = -1;
- int SOMA[1001][1001];
- for (int i = 0; i <= n; i++)
- SOMA[0][i] = 0;
- for (int i = 0; i <= m; i++)
- SOMA[i][0] = 0;
- for (int i = 1; i <= n; i++){
- SOMA[1][i] = SOMA[1][i-1] + sumCM[0][i-1];
- }
- for (int i = 1; i <= m; i++){
- SOMA[i][1] = SOMA[i-1][1] + sumCM[i-1][0];
- }
- for(int i = 1; i <= m; i++){
- for(int j = 1; j <= n; j++){
- SOMA[i][j] = SOMA[i-1][j] + SOMA[i][j-1]-SOMA[i-1][j-1]+sumCM[i-1][j-1];
- }
- }
- for(int i = val; i <= m ; i++){
- for(int j = val; j <= n; j++){
- int soma = SOMA[i][j] - (SOMA[i-val][j]+SOMA[i][j-val])+SOMA[i-val][j-val];
- if(soma != 0 && soma != val*val)maxi = max(maxi,soma);
- }
- }
- if(maxi == -1)cout<<-1<<endl;
- else cout<<maxi*25+((val*val)-maxi)*12<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement