Cod sursa(job #1633747)

Utilizator CodrutLemeniCodrut Lemeni CodrutLemeni Data 6 martie 2016 12:45:54
Problema Secventa 2 Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char s1[502];
char s2[502];
int gen[502][502];
int lin,col;

int min(int a,int b,int c){
    int m;
    m=a;
    if(m>b){
        m=b;
    }
    if(m>c){
        m=c;
    }
    return m;
}

void printmat(){
    int i,j;

    for(i=0;i<=lin;i++){
        for(j=0;j<=col;j++){
            printf("%d ",gen[i][j]);
        }
        printf("\n");
    }
}
int main(){
    int i,j;


    freopen("siruri2.in","r",stdin);
    freopen("siruri2.out","w",stdout);


    gets(s1);
    gets(s2);

    lin=strlen(s2);
    col=strlen(s1);

    for(i=0;i<lin;i++){
        if(s2[i]>='A' && s2[i]<='Z'){
            s2[i]=s2[i]+('a'-'A');
        }
    }
    for(i=0;i<col;i++){
        if(s1[i]>='A' && s1[i]<='Z'){
            s1[i]=s1[i]+('a'-'A');
        }
    }

    for(i=0;i<=lin;i++){
        gen[i][0]=i;
    }

    for(i=0;i<=col;i++){
        gen[0][i]=i;
    }

    for(i=1;i<=lin;i++){
        for(j=1;j<=col;j++){
            if(s1[j-1]==s2[i-1]){
                //gen[i][j]=min(gen[i-1][j-1],gen[i-1][j]+1,gen[i][j-1]+1);
                gen[i][j]=gen[i-1][j-1];
            }else{
                gen[i][j]=min(gen[i-1][j-1],gen[i-1][j],gen[i][j-1])+1;
            }
        }
    }
    //printmat();
    printf("%d",gen[lin][col]);
    return 0;
}