#include #include #include using namespace std; char s[10000], t[5000]; int totale = 5000000, costi[24]; //spreco un po' di memoria nel vettore dei costi, ma mi faciliterà i conti in seguito int main(){ int i, j, N=0, M=0, k=0, tmp; ifstream fin("input.txt"); fin >> s; fin >> t; while(s[++N]); //controllo quanto sono grandi while(t[++M]); fin >> costi['A'-'A']; fin >> costi['C'-'A']; fin >> costi['G'-'A']; fin >> costi['T'-'A']; for(i = 0; i < N; i++){ k = tmp = 0; for(j = 0; j < M; j++){ if(t[j] != s[i+k]) //non ho qella lettera tmp += costi[t[j]-'A']; //quindi ne aggiungo il costo else k++; if(tmp > totale) break; //se sono già oltre il costo minimo trovato inutile proseguire questo giro } if(tmp < totale) totale = tmp; } ofstream fout("output.txt"); fout << totale << endl; return 0; }