fork download
  1.  
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. const int MOD=1e9 +7 ;
  5.  
  6. char bar[1005][1005];
  7. int dp[3][2005];
  8. int white[1005]={0};
  9. int sum[1005];
  10. int main()
  11. {
  12.  
  13. int n,m,x,y;
  14. cin>>n>>m>>x>>y;
  15.  
  16. for(int i=0;i<n;i++){
  17. for(int j=0;j<m;j++){
  18. cin>>bar[i][j];
  19. if(bar[i][j]=='.') white[j]++;
  20. }
  21. }
  22.  
  23.  
  24. dp[0][0]=0;
  25. dp[1][0]=0;
  26.  
  27. for(int i=0;i<m;i++) sum[i+1]=sum[i]+white[i];
  28.  
  29. memset(dp,INT_MAX ,sizeof(dp));
  30.  
  31. for(int i=0;i<m;i++){
  32. for(int j=x;j<=y;j++){
  33. if(i+j>m){break;}
  34.  
  35. dp[0][i+j]=min(dp[0][i+j],dp[1][i]+sum[i+j]-sum[i]);
  36. dp[1][i+j]=min(dp[1][i+j],dp[0][i]+(j)*n-(sum[i+j]-sum[i]));
  37. }
  38. }
  39.  
  40.  
  41. cout<<min(dp[0][m],dp[1][m])<<endl;;
  42.  
  43. return 0;
  44. }
Success #stdin #stdout 0s 4408KB
stdin
Standard input is empty
stdout
-1