Pagini recente » Cod sursa (job #1946043) | Cod sursa (job #2023682) | Cod sursa (job #1750647) | Cod sursa (job #1035545) | Cod sursa (job #1789743)
#include <cstdio>
#include <algorithm>
using namespace std;
char sir1[20010],sir2[20010];
int d[2][20010];
int main()
{
freopen("edist.in", "r", stdin);
freopen("edist.out", "w", stdout);
int n,m,k;
scanf("%d%d%d\n%s\n%s",&n,&m,&k,sir1+1,sir2+1);
for(int i=1;i<=m;i++) d[0][i]=i;
for(int i=1;i<=n;i++)
{
int k1=i%2,k2=(i-1)%2;
int x=max(1,i-k),y=min(i+k,m);
d[k1][x-1]=k+1;
d[k1][0]=i;
for(int j=x;j<=y;j++)
d[k1][j]=min(d[k2][j]+1,min(d[k1][j-1]+1,d[k2][j-1]+(sir1[i]!=sir2[j])));
}
printf("%d",d[n%2][m]);
return 0;
}