➤  Problem Link : 225C. Barcode  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	int n,m,x,y;
	cin>>n>>m>>x>>y;
	char arr[n+1][m+1];
	int whites[m+1]={0};
	ll cum[m+1];
	pair<ll,ll> minPixels[m+1];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>arr[i][j];
			if(arr[i][j]=='.')
				whites[j]++;
		}
		
	}
	
	cum[0]=0;
	cum[1]=whites[1];
	for(int i=2;i<=m;i++)
		cum[i]=whites[i]+cum[i-1];
    
    minPixels[0].first=minPixels[0].second=0;
	for(int i=1;i<=m;i++)
	{
		minPixels[i].first=minPixels[i].second=INT_MAX;
		for(int j= i-x+1;j>=i-y+1 && j>=1 ;j--)
		{
			minPixels[i].second=min(minPixels[i].second,cum[i]-cum[j-1]+minPixels[j-1].first);
			minPixels[i].first=min(minPixels[i].first,(i-j+1)*n - cum[i]+cum[j-1] + minPixels[j-1].second);
		}
	//	cout<<i<<" "<<minPixels[i].first<<" "<<minPixels[i].second<<"\n";
	}
	cout<<min(minPixels[m].first,minPixels[m].second);
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
➤  Problem Link : 225C. Barcode  
✅ C++ Solution :
 
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
	int n,m,x,y;
	cin>>n>>m>>x>>y;
	char arr[n+1][m+1];
	int whites[m+1]={0};
	ll cum[m+1];
	pair<ll,ll> minPixels[m+1];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>arr[i][j];
			if(arr[i][j]=='.')
				whites[j]++;
		}
		
	}
	
	cum[0]=0;
	cum[1]=whites[1];
	for(int i=2;i<=m;i++)
		cum[i]=whites[i]+cum[i-1];
    
    minPixels[0].first=minPixels[0].second=0;
	for(int i=1;i<=m;i++)
	{
		minPixels[i].first=minPixels[i].second=INT_MAX;
		for(int j= i-x+1;j>=i-y+1 && j>=1 ;j--)
		{
			minPixels[i].second=min(minPixels[i].second,cum[i]-cum[j-1]+minPixels[j-1].first);
			minPixels[i].first=min(minPixels[i].first,(i-j+1)*n - cum[i]+cum[j-1] + minPixels[j-1].second);
		}
	//	cout<<i<<" "<<minPixels[i].first<<" "<<minPixels[i].second<<"\n";
	}
	cout<<min(minPixels[m].first,minPixels[m].second);
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
