Cod sursa(job #1789743)

Utilizator NinjaCubeMihai Radovici NinjaCube Data 27 octombrie 2016 15:03:37
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#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;
}