Submission #126391

#TimeUsernameProblemLanguageResultExecution timeMemory
126391TadijaSebezLamps (JOI19_lamps)C++11
0 / 100
1074 ms2696 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=1000050;
const int inf=1e9+7;
char a[N],b[N];
int dp[N][2];
int main()
{
	int n;
	scanf("%i",&n);
	scanf("%s",a+1);
	scanf("%s",b+1);
	dp[0][0]=0;
	dp[0][1]=inf;
	int best[2][2];
	best[0][0]=1;
	best[0][1]=inf;
	best[1][0]=inf;
	best[1][1]=inf;
	for(int i=1;i<=n;i++)
	{
		if(a[i]!=b[i])
		{
			dp[i][1]=min(dp[i-1][1],dp[i-1][0]+1);
			dp[i][0]=inf;
		}
		else
		{
			dp[i][1]=inf;
			dp[i][0]=min(dp[i-1][1],dp[i-1][0]);
		}
		/*if(b[i]!=b[i-1])
		{
			swap(best[0][0],best[1][0]);
			best[0][0]++;
			swap(best[0][1],best[1][1]);
			best[0][1]++;
		}
		dp[i][1]=min(dp[i][1],min(best[0][1],best[1][1]));
		dp[i][0]=min(dp[i][0],min(best[0][0],best[1][0]));
		best[0][1]=min(best[0][1],dp[i][1]+1);
		best[0][0]=min(best[0][0],dp[i][0]+1);*/
		char pre=0;
		int cnt=0;
		for(int j=i;j>=1;j--)
		{
			if(pre!=b[j]) cnt++;
			pre=b[j];
            dp[i][1]=min(dp[i][1],dp[j-1][1]+cnt/2+1);
            dp[i][0]=min(dp[i][0],dp[j-1][0]+cnt/2+1);
		}
	}
	printf("%i\n",min(dp[n][0],dp[n][1]));
	return 0;
}

Compilation message (stderr)

lamp.cpp: In function 'int main()':
lamp.cpp:15:6: warning: variable 'best' set but not used [-Wunused-but-set-variable]
  int best[2][2];
      ^~~~
lamp.cpp:10:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i",&n);
  ~~~~~^~~~~~~~~
lamp.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",a+1);
  ~~~~~^~~~~~~~~~
lamp.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",b+1);
  ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...